2010-07-13 7 views
7

Gibt es ein Programm, das Assembly in C oder C++ konvertiert? Ich habe viel gesucht, aber ich konnte nichts finden, was funktioniert. Es gibt ein Programm namens "Boomerang"; es sieht gut aus und will nur, dass ich es wollte, aber es ist sehr instabil und stürzt ab, wenn ich versuche es zu benutzen. (boomerang)Gibt es ein Programm, um Assembly in C++ zu konvertieren?

Gibt es noch andere kostenlose Programme, die das tun?

+0

Viele Duplikate, z.B. [Gibt es einen Decompiler, um ein OBJ in C/C++ - Code zu konvertieren] (http://stackoverflow.com/questions/669003/is-there-a-decompiler-to-convert-a-obj-into-cc-code) –

Antwort

1

Dies ist nicht möglich.

Es kann nicht getan werden.

Es ist jenseits der Reichweite von Sterblichen.

Nun, es sei denn, der C-Code verwendet Embedded Assembly. Aber selbst da ist es ein bisschen zweifelhaft.

Beachten Sie, dass ein Decompiler die Assembly nicht in C konvertiert. Ein Decompiler versucht ungefähr ursprünglichen Quellcode eines Programms. Das Mapping ist nicht notwendigerweise perfekt und nicht für eine beliebige Assembly möglich (auch wenn Sie in dem resultierenden C keine Inline-Assembly verwenden).

+0

Eh? Nein ... es wird nicht perfekt sein, aber es etwas besser zu machen, damit es leichter ist, mit ihm zu arbeiten, ist immer noch ein guter Anfang. – mpen

+1

-1 Die Pflege des dekompilierten Codes kann schwierig sein, aber es kann getan werden. – zoli2k

+1

@ zoli2k: Nein, für eine beliebige Assembly ist das nicht möglich. Die Fähigkeiten von C sind keine lose Obermenge von denen der Assemblersprache. Angenommen, meine Assembly besteht aus "TST% r1". Dieser Befehl bewirkt, dass der Prozessorschrittzähler um 1 nach oben geht, aber wenn ich das Ergebnis nicht verwende, hat das keinen anderen Effekt. Es gibt keinen C-Code, der dieser einzelnen Anweisung entspricht. Es gibt viele andere Beispiele - interne Prozessorregister lesen, direkt in E/A-Geräte schreiben, sogar den HLT-Befehl. Was ich gesagt habe, war richtig. – Borealid

1

Es gibt nur wenige Werkzeuge in der Lage die Umwandlung wie Regolix Übersetzer von ASM zu C und Datatek Umwandlung ASM auf C/C++/Cobol/C# zu tun. Ich denke jedoch, dass die Wartung des konvertierten Codes problematisch sein kann.

+0

ja ich sah beide thoses Relogix Ich verstehe nicht, ich denke, es ist eingebaut und idk, wie man es benutzt. und datatek muss man dafür bezahlen. Ich schaute, aber ich habe nichts über das Herunterladen gesehen, Sie müssen sie anrufen, um über das Kaufen zu sprechen. – blood

2

Was Sie suchen, ist ein Decompiler.

Sie werden mit etwas nicht wirklich viel besser als die ASM-Quelle enden, und ich bin mir ziemlich sicher, dass Sie am Ende mit C enden werden, nicht C++ sowieso.

+0

ich glaube nicht, dass ich einen decompiler haben möchte, ich habe den assembly code, aber ich möchte, dass er in C++ umgewandelt wird. – blood

Verwandte Themen