Décompilation

La décompilation est la conversion d'un code de programme exécutable, parfois appelé code objet, en un langage de programmation de plus haut niveau qui peut être lu et compris par les humains. La décompilation est un type d'ingénierie inverse qui fait le contraire de ce que fait un compilateur. L'outil qui accomplit cette tâche s'appelle un décompilateur. Un outil similaire, appelé désassembleur, traduit le code objet en langage assembleur. La décompilation et le désassemblage peuvent être utilisés pour diverses raisons, notamment pour comprendre les programmes, récupérer le code source pour l'archiver ou le mettre à jour, trouver des virus, diagnostiquer des problèmes, traduire du code obsolète ou déboguer. La décompilation a été utilisée pour la première fois dans les années 1960 pour faciliter la migration d'un programme d'une plate-forme à une autre. Il existe de nombreuses raisons pour lesquelles la décompilation peut ne pas réussir à chaque fois. Il n'est pas possible de décompiler tous les programmes, et les données et le code sont difficiles à séparer, car les deux sont représentés de manière similaire dans la plupart des systèmes informatiques actuels. Les programmeurs donnent souvent des noms significatifs aux variables et aux fonctions pour faciliter leur identification. Elles ne sont donc pas stockées dans les fichiers exécutables, ce qui rend difficile pour les programmeurs de ne pas pouvoir les récupérer lors de la décompilation.

La décompilation est parfois utilisée de manière non éthique, pour reproduire le code source en vue d'une réutilisation ou d'une adaptation sans l'autorisation du détenteur du droit d'auteur. Vous pouvez concevoir des programmes pour résister à la décompilation en utilisant des méthodes de protection telles que l'obfuscation.