J'ai un programme dont j'ai perdu le code source C++. Existe-t-il de bons décompilateurs C++ ?
Je suis déjà tombé sur Boomerang .
J'ai un programme dont j'ai perdu le code source C++. Existe-t-il de bons décompilateurs C++ ?
Je suis déjà tombé sur Boomerang .
Vous pouvez utiliser IDA Pro par Hex-Rays . En général, vous n'obtiendrez pas un bon C++ d'un binaire si vous ne compilez pas les informations de débogage. Préparez-vous à passer un lot de travail manuel pour inverser le code.
Si vous n'avez pas dépouillé les binaires, il y a un peu d'espoir car IDA Pro peut produire un code similaire au C pour que vous puissiez travailler avec. En général, c'est très approximatif, du moins quand je l'ai utilisé il y a quelques années.
Est éliminée lors du processus de compilation. Même si un décompilateur pouvait produire le code logique équivalent avec les classes et tout le reste (ce qui n'est probablement pas le cas), la partie auto-documentation disparaît dans le code optimisé. Pas de nom de variable, pas de nom de routine, pas de nom de classe - juste des adresses.
Je n'ai pas vu de décompilateur qui génère du code C++. J'en ai vu quelques uns expérimentaux qui faisaient une tentative raisonnable de générer du code C, mais ils avaient tendance à dépendre de la correspondance avec les modèles de génération de code d'un compilateur particulier (cela peut avoir changé, cela fait un moment que je ne me suis pas penché sur la question). Bien sûr, toute information symbolique sera perdue. Recherchez "décompilateur" sur Google.
En fonction de la taille et de la qualité du code d'origine, il peut être intéressant de recommencer dans votre langage préféré (qui peut toujours être le C++) et de tirer parti des erreurs commises dans la dernière version. N'a-t-on pas dit un jour qu'il fallait en écrire un pour le jeter ?
n.b. Il est clair que s'il s'agit d'un produit énorme, alors cela ne vaut peut-être pas la peine d'y consacrer du temps.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.