Salut!
Je tiens d'abord a remercier el-farouk pour l'idée, Maverick pour son enthousiasme, et Samir_dz pour l'espace et la compréhension.
Reverse Code Engineering est un art d'une extreme vitalité pour les professionnels et les experts de la sécurité d'aujourd'hui.De la rétro-ingénierie d'un malware à la découverte des vulnérabilités dans un binarie, un tel savoir est exigé de nos jours afin de pouvoir sécuriser convenablement une organisation dans un monde ou l'évolution des menaces est en perpétuelle croissance ( plus de 1 millions de virus en 1998 d'apres les laboratoires de Kaspersky).
Reverse Code Engineering est une compétence essentielle ?
Les pirates utilisent de plus en chevaux de Troie personnalisés qui ne sont pas détectés par les antivirus. En outre, de nombreux programmes binaires contiennent des vulnérabilités, telles que les dépassements de tampon et de l'utilisation de très faibles algorithmes cryptographiques. La seule facon de découvrir ces vulnérabilités critiques pour les programmes de closed-source ( le contraire d'open source) est bien le reverse code engineering.
Le RCE est également nécessaire afin de comprendre les mécanismes complexes de l'obscurcissement binaires utilisés par les fournisseurs de protection contre la copie, ainsi que l'obscurcissement mis en place par les éditeurs de logiciels commerciaux.
Dans cette section, vous apprendrez les connaissances d'analyse binaires nécessaires pour découvrir la vraie nature de tout binaire Windows ( Rappelez vous qu'un Logiciel freeware ne veut pas dire Open Source), vous apprendrez également comment reconnaitre la construction des langages de haut niveau ( branching statements (if, else, switch), looping functions et le code socket réseau), essentiels à l'exécution d'une analyse consciencieuse et professionnelle d'un binaire.
En somme, vous apprendrez :
- Comprendre les états de branchement conditionnel
- Identification des variables
- Gestion de la mémoire
- Formats d'exécutable de Win32
- Fondements de l'IDA Pro
- Utilisation avancée de l'IDA Pro avec le code hostile
- Utilisation d'OllyDbg pour l'analyse d'exécution de logiciels malveillants
- Mode débogage du noyau (Kernel) avec SoftICE (ring 0)
- Dump d'un exécutables à partir de la mémoire
- Localisation des API non documentées
- Le Reversing de ntdll.dll
- Obfuscation de formats de fichiers
- Comprendre les fonctions de hachage
- Travailler avec des fichiers binaires cryptées
- Unpacking ( décompression ) d'UPX et d'autres types de compression (ACProtect, ASProtect, Armadillo, Obsidium, Themida, PCGuard, etc)
- Découvrir les débordements de pile
- Suivi des modifications du Registre
- Contrecarrer le code anti-debugger
- Débogage des programmes multi-thread , etc
Après avoir appris ces connaissances préliminaires importantes, vous avancerez à l'analyse de :
- Code hostile & Malware ( vers, virus, chevaux de Troie, les rootkits et les bots ) .
- Vulnérabilités dans les binaires ( des vulnérabilités de chaine de format, les conditions de dépassement de mémoire tampon, et l'identification des lacunes des schémas cryptographiques).
- Les schémas d'obscurcissement binaires utilisés par : ( les Pirates informatiques, les concepteurs de Trojans et les algorithmes de protection contre la copie ).
Vous apprendrez supplémentairement comment reconnaitre les caractéristiques des compilateurs (optimiseurs) modernes ( la famille gcc 4.x et l'omniprésent Visual Studio. NET).
PS : Le prochain post sera consacré a l'assembleur
http://fr.wikipedia.org/wiki/Assembleur
Liens sociaux