Question

J'ai un programme dans lequel j'ai perdu le code source C ++. Existe-t-il de bons décompilateurs C ++?

J'ai déjà rencontré Boomerang .

Était-ce utile?

La solution

Vous pouvez utiliser IDA Pro par Rayons Hex . En général, vous ne tirerez pas un bon C ++ d’un binaire, à moins d’être compilé dans les informations de débogage. Préparez-vous à dépenser un lot de travail manuel pour inverser le code.

Si vous ne supprimez pas les fichiers binaires, il y a de l'espoir car IDA Pro peut produire du code de type C avec lequel vous pouvez travailler. Habituellement, c’est très dur, du moins quand je l’ai utilisé il ya quelques années.

Autres conseils

Les informations

sont supprimées lors de la compilation. Même si un décompilateur pouvait produire le code équivalent logique avec des classes et tout le reste (ce qui est probablement le cas), la partie auto-documentée a disparu dans du code de version optimisé. Pas de nom de variable, pas de nom de routine, pas de nom de classe - juste des adresses.

Oui, mais aucun d’entre eux ne parviendra à produire suffisamment de code lisible pour en valoir la peine. Vous passerez plus de temps à essayer de lire la source décompilée avec des blocs assembleurs qu’à réécrire votre ancienne application à partir de zéro.

Je n'ai vu aucun décompilateur générant du code C ++. J'ai vu quelques expériences expérimentales qui tentaient raisonnablement de générer du code C, mais elles avaient tendance à dépendre de la correspondance des modèles de génération de code d'un compilateur particulier (cela peut avoir changé, cela fait longtemps que je n'ai pas examiné ce ). Bien sûr, toute information symbolique aura disparu. Google pour "décompilateur".

En fonction de la taille et de la qualité de l'écriture du code d'origine, il peut être intéressant de recommencer dans votre langue préférée (qui peut encore être le C ++) et de tirer des leçons des erreurs éventuelles commises dans la dernière version. Quelqu'un n'a-t-il pas dit une fois d'écrire quelqu'un à jeter?

n.b. Clairement, s’il s’agit d’un énorme produit, il se peut que cela ne vaut pas la peine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top