• STATISTIQUES
  • Il y a eu un total de 3 membres et 7459 visiteurs sur le site dans les dernières 24h pour un total de 7 462 personnes!


    1 membre s'est inscrit dans les dernières 24h!


    Membres: 2 608
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] xda-developers
    Très bon site pour les gros bidouilleurs de smartphone de windows à androïd et de Apple jusqu'...
    Phreaking
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [FR] Hackfest
    Le Hackfest est un évènement de sécurité et de piratage informatique au Québec reg...
    Hacking
    [EN] phrack
    Lot's of stuff !
    Hacking
    [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Guide à l'usage des débutants en RE

Ce post a pour but de répondre à 90% des questions que les débutants posent à chaque fois. Il va traiter les outils et les ressources de base nécessaires pour une bonne progression dans le domaine du Reverse Engineering. J'y ai rajouté une section 'Conseils' afin de répondre brièvement aux problèmes courants rencontrés par les débutants. Une dernière chose enfin, prenez le temps de chercher sur google plus de 30 secondes, de réfléchir à votre problème, et de lire la documentation disponible avant de poser des questions au risque d'exaspérer les gens qui y répondent. Au passage, c'est un peu le but de ce post de répertorier le tout afin que je n'ai plus à répondre à ces questions, et cela devrait certainement aider quelques personnes.

OUTILS DE BASE EN RE

Vous trouverez ici une liste avec les outils de base requis pour faire la plupart des actions communes dans toutes les disciplines liées au RE. Vous pouvez trouver une bonne partie des logiciels mentionnés ici. Attention, certains ne sont pas à jour / pas présents dans le repo, à vous d'utiliser un petit peu google pour récupérer les dernières versions.

Editeur hexa : X-Ways.WinHex.v16.8.Incl.Keymaker-ZWT, Hiew v8+
Utilité : Analyse / édition de fichiers statiques ou d'exécutables.

Debuggeurs :- OllyDbg v1.10 .
En plugins : phant0m / strongOd + ollydump + godup + commandbar + odbgscript
- OllyDbg v2.01h
Utilité : Permettre une analyse en 'live' du programme, aussi appelée analyse dynamique. Phant0m est un plugin pour contourner des antidebuggers. OllyDump sert à dumper des programmes en mémoire. Godup nous servira pour charger des .map d'ida. OdbgScript sert à exécuter des ollyscripts.
- Sysersoft.Syser.Kernel.Debugger.Enterprise.Edition.v1.99.1900.1220.Incl.KeyMaker-DVT
Utilité : Permet de debugger des drivers, de s'attaquer au debugging en ring0.

Désassembleur : Ida RDW pack, soit :
- Hex-Rays.IDA.Pro.Advanced.FLAIR.v6.1-RDW
- Hex-Rays.IDA.Pro.Advanced.IDS.Utilities.v6.1-RDW
- Hex-Rays.IDA.Pro.Advanced.LOADINT.v6.1-RDW
- Hex-Rays.IDA.Pro.Advanced.SDK.v6.1-RDW
- Hex-Rays.IDA.Pro.Advanced.TILIB.v6.1-RDW
- Hex-Rays.IDA.Pro.Advanced.v6.1.TVision.v2009b.Source-RDW
- Hex-Rays.IDA.Pro.Advanced.v6.1.Windows.incl.Hex-Rays.x86.Decompiler.v1.5.READ.NFO-RDW
En plugins : idapython, findcrypt, Idascope, Ida Toolbag, Zynamics.BinDiff.v4.0.1.Incl.Keyfilemaker.and.Patch-EMBRACE
En signatures : RESigs 0.18, des signatures pour delphi. On peut trouver beaucoup de signatures sur la RCE
Collaborative Tool Library ou ici.

Utilité : Permet de faire de l'analyse de programme en statique. Ida est un outil extrêmement puissant, mais difficile à maîtriser pour un débutant. Les plugins permettent encore d'étendre ses fonctions, tout comme pour OllyDbg. Idapython est très pratique pour exécuter des scripts python afin d'automatiser des tâches. Findcrypt sert à repérer les algorithmes cryptographiques et à les marquer. Bindiff permet de comparer deux exécutables entre eux pour déterminer les différences. Les signatures permettent quand à elles de nommer les fonctions reconnues de librairies, elles sont très utiles pour analyser du delphi ou des cibles utilisant des librairies cryptographiques.

Décompilateurs : - java : jdgui
- vb6 : VB.Decompiler.Pro.v8.3.RETAIL.INCL_KEYGEN+PATCH-FFF
- delphi : IDR, DeDe 3.5
- apk : APKtool, dex2jar, Androguard
Utilité : décompiler le code pour le retrouver sous une forme plus lisible et abordable que l'asm.

PE : Explorer Suite, Lord PE 1.41 (Deluxe b), PETools
Utilité : Editer les propriétés d'un exécutable via son PE Header.

IAT / Dump : ImpRec v1.7e, ImpREC Plugin Pack, CHimpREC, Scylla
Utilité : Reconstruire l'IAT de programmes unpackés. CHimpREC est utile pour l'unpacking x64.

Scanners : PEiD 0.95, Protection ID 6.4, RDG Packer Detector
Utilité : Détection de compilateurs / protections connues via signatures.

Recherche de strings : Bintext, strings, hexdive
Utilité : récupérer les SDR d'un fichier.

Editeur de ressources : Reshacker v3.5
Utilité : Editer les ressources d'un exécutable.

Patcheur : duP 2.26
Utilité : Pour générer des patchs.

Monitoring : Process Explorer, Process Monitor, Regshot, API Monitor v2
Utilité : Permet de surveiller et de monitorer l'environnement durant l'exécution d'un programme. Très utile dans le cas d'analyse de malwares.

Réseau : Wireshark, NetworkMiner, Fiddler
Utilité : Surveiller le réseau afin de découvrir le traffic d'applications. Utile en analyse de malwares.

.NET : Red.Gate.Reflector.v7.7.0.236.Incl.Keygen-Lz0 / dotpeek, ILSpy, Reflexil, de4dot
Utilité : Décompiler et désobfusquer du .net.

Crypto / conversion : Keygenner Assistant v2.1.0, RSA-Tool, x3chun Crypto Searcher, x3chun Hash Calculation, SnD Reverser Tool 1.4
Utilité : Utilitaires de conversion / de cryptographie. Indispensables.

ASM : WinAsm Studio, MASM v11, nasm.
Utilité : Conseillé, vous aurez certainement besoin à un moment ou à un autre de coder en asm

Javascript : Malzilla 1.2, Revelo 0.5, Firebug
Utilité : Désobfusquer du javascript. Utile en analyse de malwares.

SWF : SWFTools, swfretools 1.10, Sothink.SWF.Decompiler.v7.3.4959-NGEN
Utilité : Décompiler du flash. Utile en analyse de malwares.

PDF : PDF Stream Dumper, Origami
Utilité : Analyse de fichiers PDF. Utile en analyse de malwares.

Autres : Python v2.7, UPX 3.07, Autoruns, Kernel Detective v1.4.1, OSRLoader
Python est nécessaire pour IDAPython. UPX est indispensable pour se simplifier la vie. Autoruns sert à monitorer toutes les entrées de démarrage, il est très utile en cas d'analyse de malwares. Kernel Detective est assez intéressant dans le cadre d'analyse de malwares se développant en ring0. OSRLoader sert à charger des drivers.


RESSOURCES DE BASE POUR LE RE


Nous avons donc maintenant les outils requis, passons aux ressources de base. Ces ressources sont basées sur le nombre de fois qu'elles m'ont été demandé par des gens qui débutent, je pense donc qu'elles ont de l'intérêt ici.

Où télécharger des outils :

- http://www.woodmann.com/collaborative/to...:RCE_Tools
- http://tuts4you.com/download.php

Débuter en Reverse engineering :
- http://www.forumcrack.com/web/deamonftp....amoncrack/ | En français
- http://forumcrack.com/web/Dynasty/ | En français
- http://tuts4you.com/download.php?list.17 | Vidéos, en anglais.
- http://opensecuritytraining.info/Training.html | Vidéos, en anglais

Débuter avec OllyDbg :
- Olly Beginner Tutorials Series par ARTeam | En anglais

Débuter avec Ida Pro :
- http://woodmann.com/TiGa/idaseries.html | Vidéos, en anglais.
- http://www.hex-rays.com//products/ida/su...tutorials/ | En anglais

Les antidebuggers :
- http://www.codeproject.com/Articles/3081...ring-Guide | En anglais
- http://pferrie.tripod.com/papers/unpackers.pdf | En anglais

Débuter en ASM Win32 :
- http://asm.developpez.com/cours/noteworthy/ | En français
- http://xtx.free.fr/Cracking_Nostalgie/co...mbleur.htm | En français
- http://deamonftp.free.fr/deamoncrack/Pag...rs-asm.htm | En français
- http://xylirepo.free.fr/Reverse%20engine...index.html | En français
- http://xtx.free.fr/liens/tut/api/api.htm | En français

Trouver des crackmes :
- http://crackmes.de/
- http://www.forumcrack.com/web/defisfc.free.fr/crackmes/
- http://www.reversing.be/index.php?topic=crackmes


QUELQUES CONSEILS EN VRAC


Je ne vais pas réinventer la roue pour quelques un, des explications claires ont déjà été rédigées.

Que faire quand il n'y a pas de SDR ? -> http://www.forumcrack.com/viewtopic.php?f=6&t=5174
Problème face à soft -> http://www.forumcrack.com/viewtopic.php?f=6&t=1994

Je rajouterai :

- Quand vous débutez, évitez les logiciels. Les protections sont bien souvent hors de votre portée, que ce ce soit au niveau unpacking ou keygenning. Préférez les crackmes, et n'hésitez pas à suivre des tutos en bidouillant à côté pour découvrir.

- Bidouillez ! Au début, on nage dans le code, on est dépassé par ce que l'on voit, mais l'asm se lit ensuite couramment avec l'habitude. N'hésitez donc surtout pas à sortir Olly et à tenter des choses, vous avez tout à y gagner.

- Quand vous keygenner un logiciel, prenez le problème depuis le haut en allant vers le bas. Je m'explique : rien ne sert de F7 chaque CALL pour essayer de voir ce qu'ils font et de se perdre dedans. Faites d'abord un aperçu avec F8, repérez les fonctions qui prennent des paramètres intéressants / renvoient des paramètres intéressants ; et au prochain tour seulement vous rentrerez dedans avec F7. Vous pouvez vite vous perdre à essayer de tout tracer et ne plus rien comprendre à la routine. Utilisez aussi toutes les ressources à votre disponibilité pour comprendre : les registres, la pile, les breakpoints de chaque forme. Le post de Lise_Grim que j'ai linké plus haut et à ce titre très intéressant car il explique comment réagir face à un programme.

- IDA a l'air repoussant au premier abord, mais c'est une aide précieuse. Même si vous ne vous en servez pas pour l'analyse, je vous conseille de charger la cible dedans, d'appliquer les signatures adéquates et d'exporter un .map avec toutes les informations. Vous chargez ensuite ce .map dans OllyDbg avec le plugin GoDUP et ça vous évitera des maux de têtes à essayer de reconnaître des fonctions à l'oeil.

- Evitez d'utiliser les unpackers et les ollyscripts, ça ne vous apportera rien. Le but c'est d'apprendre à unpacker / RE, pas de faire deux clics et d'éxécuter des scripts. Dans le même genre, on n'inverse pas les sauts : soit on les noppe, soit on les remplace par des JMP. Inverser un saut est une absurdité, si vous entrez un bon sérial vous aurez un message d'erreur. Une dernière chose : pas de patching à outrance. Le but c'est de comprendre le code, pas de le saccager salement.

- Enfin, je vous conseille fortement d'utiliser une VM avec Windows XP pour tous vos travaux de reverse engineering. Il est en effet beaucoup plus simple de débugger sur une architecture 32 bits (moins de problèmes de compatibilité avec les tools comme olly, pas d'aslr / dep, etc.). Vous aurez en outre la possibilité de faire des snapshots afin de restaurer l'état de la machine à un état antérieur. La constitution d'une VM est indispensable pour tout ce qui touche au reversing de malwares. Vous pouvez utiliser VMWare Workstation ou VirtualBox afin de créer votre machine virtuelle.


Ce rapide guide du débutant en est à la version 1.2, et est encore susceptible de connaître des mises à jour et des rajouts en fonction des suggestions (que j'encourage). (Au passage si un mod pouvait l'épingler je lui en serais reconnaissant à vie (à moins que ça ne soit pas jugé nécessaire?))

J'espère qu'il répondra aux attentes des débutants, et qu'ils prendront le temps de le lire avant de poser toujours les mêmes questions Smile

Edit : v1.1. Merci à toutes les personnes m'ayant remonté des fautes ou conseillé des logiciels / sites à rajouter.
Edit 10/12/2012 : v1.2. Mise à jour de tools, rajouts de tools (Scylla, Androguard, etc.) et de quelques ressources. Merci aux suggestions transmises.
21-10-2012, 21h41
Message : #1
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,610
Sujets : 72
Points: 466
Inscription : Jan 2012
RE: Guide à l'usage des débutants en RE
Bon, si personne ne s'y oppose, je validerai le tuto demain Smile
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
21-10-2012, 23h41
Message : #2
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: Guide à l'usage des débutants en RE
il est vraiment bien cool Smile
22-10-2012, 19h40
Message : #3
Dobry Hors ligne
Tueur de lamouz
*



Messages : 206
Sujets : 25
Points: 73
Inscription : Aug 2011
RE: Guide à l'usage des débutants en RE
Pas eu le temps de lire, mais moi qui voulais me remettre plus serieusement au RE je pense que je vais te lire Horgh !
Aestuārium Erudītiōnis

There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors.

New Project News White Hat Hacker V2.3
Accueil | Challenges | Tutoriels | Téléchargements | Forum