2008-09-04 6 views

Répondre

9

En général, les langages Java, C# et VB.NET sont relativement faciles à décompiler car ils sont compilés dans un langage intermédiaire et non dans un langage machine pur. Dans leur forme IL, ils conservent plus de métadonnées que le code C lorsqu'il est compilé en langage machine.

Techniquement, vous ne récupérez pas le code source d'origine, mais une variante du code source qui, une fois compilé, vous redonnera le code compilé. Il n'est pas identique au code source, car les éléments tels que les commentaires, les annotations et les directives du compilateur ne sont généralement pas reportés dans le code compilé.

1

.NET est très facile à décompiler. Le meilleur outil pour ce faire serait le .NET reflector récemment acquis par RedGate.

0

La plupart des langues peuvent être décompilées, mais certaines sont plus faciles à décompiler que d'autres. .Net et Java mettent plus d'informations sur le programme original dans les exécutables (noms de méthodes, noms de variables, etc.) afin que vous récupériez plus d'informations originales. C++ par exemple traduira des variables et des fonctions etc. en adresses de mémoire (ouais je sais que c'est une simplification grossière) ainsi le décompilateur ne saura pas quel truc a été appelé. Mais vous pouvez toujours obtenir une partie de la structure du programme.

0

VB6 si compilé à pcode est également possible de décompiler à une source presque complète à l'aide P32Dasm, Flash (ou actionscript) est également possible de décompiler à une source complète en utilisant quelque chose comme Flare

4

langages managés peuvent être facilement décompilé car exécutable doit contenir beaucoup de métadonnées pour prendre en charge reflection.
Des langages comme C++ peuvent être compilés en code natif. La structure du programme peut être totalement modifiée pendant les processus de compilation \ traduction.
Le compilateur peut facilement remplacer les parties \ merge \ delete de votre code. Il n'y a pas de relation 1 à 1 entre le code original et le code compilé (natif).

Questions connexes