De nombreuses protections existent contre l'analyse statique ou dynamique. Ces protections ont pour but en general d'eviter le piratage de logiciel. C'est d'ailleurs souvent dans les jeux video que ces protections sont les plus complexes car c'est un secteur tres touche par le cracking.
Pour proteger simplement de l'analyse statique on utilise souvent des methodes dites 'd'obfuscation' c'est a dire qu'on essaye de complexifier le code pour le rendre imcomprehensible par un humain pour cela on place du code qui ne fait rien sauf rendre le programme moins lisible ou on essaye de tromper le desassembleur en utilisant des sauts relatifs, ansi le code est decalle mais ce decallage n'est en general pas pris en compte par le desassembleur qui affiche alors des instructions completements fausses.
Les protections contre l'analyse dynamique, sont en general de veritable s attaques contre les debuggers par exemple pour que gdb ne puisse pas debugger un programme on peut utiliser PTRACE_PTRACEME (man ptrace) pour verifier si le programme ce fait tracer et quitter le programme. Il existe de nombreuses autres techniques dont une qui empeche l'utilisation de breakpoints software puisque GDB va ecrire l'instruction INT3 a l'endroit ou l'on place un break point il suffit de verifier si cette instruction et ecrite sur le code du programme pour savoir si un breakpoint a ete pose et donc quitter le programme.
Si vous le voulez / si on a assez de temps nous allons voir quelques programmes qui utilisent ces protections basiques.
Ce que nous avons vu aujourd'hui et une des formes les plus simples de l'analyse binaire, si ce domaine (cracking, reverse engineering...) vous interesse n'hesitez a nous poser des questions ou aller faire des recherches sur internet comme pour de nombreux autres chapitres de ce cours vous pouvez essayer de resoudre les challenges proposes par honeynet.org pour vous entrainer, celui en rapport avec ce cours est bien sur le challenge de reverse engeneering, il est difficile mais rien que de lire les reponses des participants ce challenge peut vous apporter beaucoup.
Pour une analyse plus complete du format elf, nous vous conseillons d'utiliser elfsh un programme fait par un de vos collegues d'epita, qui est tres complet et fourni avec de nombreuses distributions. Vous trouverez d'ailleurs de nombreux articles notament dans le e-zine phrack qui explique comment l'utiliser a des fins subversives ou analytiques.
Le but de cet exercice est de creer un environnement pour confiner l'executable fourni, ensuite vous devez analyser le binaire pour comprendre ce qu'il fait et nous donner un resume le plus detaille possible de ses actions.