2010-07-13 2 views
7

Y at-il un programme qui va convertir l'assemblage en C ou C++? J'ai fait beaucoup de recherches, mais je n'ai rien trouvé qui fonctionne. Il existe un programme appelé "Boomerang"; ça a l'air génial et je veux juste avoir envie, mais c'est très instable et ça craque quand j'essaie de l'utiliser. (boomerang)Existe-t-il un programme pour convertir l'assembly en C++?

Y a-t-il d'autres programmes gratuits qui le feront?

+0

De nombreux doublons, par ex. [Existe-t-il un décompilateur pour convertir un OBJ en code C/C++] (http://stackoverflow.com/questions/669003/is-there-a-decompiler-to-convert-a-obj-into-cc-code) –

Répondre

1

Ceci n'est pas possible.

Cela ne peut pas être fait.

Il est hors de la portée des mortels.

Eh bien, à moins que le code C utilise l'assemblage intégré. Mais même là, c'est un peu incertain.

Notez qu'un décompilateur ne "convertit pas l'ensemble en C". Un décompilateur tente de approximative le code source d'un programme. Le mappage n'est pas nécessairement parfait et impossible pour un assemblage arbitraire (à nouveau, sauf si vous utilisez l'assemblage en ligne dans le C résultant).

+0

Eh? Non ... ce ne sera pas parfait, mais faire en sorte qu'il soit au moins un peu plus haut donc c'est plus facile de travailler avec c'est toujours un bon début. – mpen

+1

-1 La maintenance du code décompilé peut être difficile mais cela peut être fait. – zoli2k

+1

@ zoli2k: non, pour un assemblage arbitraire, cela ne peut pas être fait. Les capacités de C ne sont pas un sur-ensemble libre de celles du langage d'assemblage. Par exemple, supposons que mon assemblage se compose de "TST% r1". Cette instruction fait monter le compteur de pas du processeur de 1, mais si je n'utilise pas le résultat, cela n'a aucun autre effet. Il n'y a pas de code C qui équivaut à cette instruction solitaire. Il existe de nombreux autres exemples: lire les registres internes du processeur, écrire directement sur les périphériques d'E/S, même l'instruction HLT. Ce que j'ai dit était correct. – Borealid

1

Il y a peu d'outils capables de faire la conversion comme Regolix traducteur d'ASM à C et Datatek convertissant ASM en C/C++/Cobol/C#. Cependant, je pense que la maintenance du code converti peut être problématique.

+0

oui j'ai regardé ces deux Relogix je ne comprends pas je pense qu'il est construit et idk comment l'utiliser. et datatek vous devez payer pour cela. J'ai regardé mais je n'ai rien vu sur le téléchargement, vous devez les appeler pour parler de l'achat. – blood

2

Ce que vous cherchez est un décompilateur.

Vous finirez avec quelque chose de pas vraiment mieux que la source ASM, et je suis sûr que vous allez finir avec C, pas C++ de toute façon.

+0

Je ne pense pas que je veux un décompilateur, j'ai le code d'assemblage mais je veux qu'il soit transformé en C++. – blood

Questions connexes