Un fichier exécutable est converti en code source de haut niveau par un programme informatique connu sous le nom de décompilateur. Contrairement à un compilateur traditionnel, qui convertit les langages de haut niveau en langages de bas niveau, il accomplit l'exact opposé. Les décompilateurs vont un pas plus loin et convertissent le code dans un langage de haut niveau, tel que C ou Java, nécessitant des techniques plus avancées que les désassembleurs, qui transforment un exécutable en langage assembleur. Les décompilateurs produisent fréquemment du code obfusqué car ils sont incapables de reconstruire entièrement le code source original. Ils restent néanmoins un outil crucial dans le reverse engineering des logiciels informatiques.
Qu'est-ce que la décompilation ?