Guide à l'usage des débutants en RE
|
21-10-2012, 20h47
(Modification du message : 10-12-2012, 20h22 par Horgh.)
Message : #1
|
|
Horgh
Membre actif Messages : 197 Sujets : 4 Points: 91 Inscription : Mar 2012 |
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 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 : #2
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,614 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
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 : #3
|
|
sakiir
[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
|
|
22-10-2012, 19h40
Message : #4
|
|
Dobry
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.
|
|
« Sujet précédent | Sujet suivant »
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Petit guide de survie pour radare2 | supersnail | 3 | 2,524 |
23-03-2016, 10h23 Dernier message: ZeR0-@bSoLu |
Utilisateur(s) parcourant ce sujet : 4 visiteur(s)