Assembler Code to C / C++

Hallo!

Versuche gerade eine Methode eine exe auszulesen.

Ich habe nun den Assembler-Code von dieser exe und da ich mich das letzte mal vor 3 Jahren mit Assembler beschäftigt habe und das auch nur eher sporadisch war, möchte ich diesen in C oder C++ umwandeln.

Ich kann zwar einzelne Sachen rauslesen, dass z.b. einige Registry-Einträge von Call of duty und Sims eingetragen sind (bin war völlig ratlos, warum diese in einer exe stehen, weil die exe sich mit etwas anderem beschäftigt, aber egal), aber mehr auch nicht.

Voraussetzung ist, dass die Applikation in C bzw. C++ geschrieben wurde und das nehmen wir an.

PS: Forumsuche benutzt, aber wurde zu dieser spezifischen Frage nicht fündig.
 
Was Du vor hast, geht nicht. Du kannst den originalen Sourcecode nicht wiederherstellen, da er beim Compile nicht mit in die Exe übernommen wird. Was übrig bleibt sind Maschinencode und Einsprungadressen von Funktionen. Je nach Optimierungsflags sind auch Variablennamen weg.

Ohne Assembler wirst Du nicht weit kommen.
 
Decompiler gibt es auch für C, getestet habe ich die allerdings noch nie und zu 100% werden die sicherlich nicht funktionieren, wenn es nämlich mit Sprachen wie C funktionieren würde, dann würde es auch mit allen anderen gehen und damit wäre vom Prinzip her alles in wenigen Minuten Open Source :D.

Google mal "C decompiler" vielleicht findest du was brauchbares.

Für Sprachen wie Java, die Bytecode generieren anstatt direkt Maschinencode, geht sowas allerdings recht gut.
 
Ich hab mich schon zu Tode gegooglet, was alles möglich ist und nicht.

Da gibt es die, die sagen, es ist gar nichts möglich.

Dann gibt es die, die sagen, ja es ist möglich aus einer exe die source-codes zu generieren mit verschiedenen decompilern.
Doch diese sagen auch, dass dies illegal ist, falls es gegen die Urheberrechte des Eigentümers der Applikation verstößt. Darum gibt es davon fast nichts.

Da ich nun schon den Assembler-Code habe, schätz ich mal, dass es doch möglich ist und habe einige Previews gesehen, wo jemand irgendein Decompiler hat und darin 2 Listen. Links den Assembler Code und rechts den direkt übersetzten C-Code aus den einzelnen Zeilen.

Wegen Bytecode hab ich auch schon nachgesehen, doch hab mich dann mit Assembler beschäftigt.

Falls eine Applikation mit Java geschrieben wurde und diese in eine exe übersetzt wurde, ist es möglich über den Bytecode den Code wiederherzustellen? Falls ja, kann man andere Sprachen anhand des Bytecodes übersetzen?
 
Es kommt darauf an, in welcher Sprache das Programm geschrieben wurde. Wenn es sich um Sprachen handelt, die Bytecode als Zwischensprache haben, der dann von einer VM abgearbeitet wird (Java/ C#/ C++.net), ist es in der Regel kein Problem den originalen Quelltext zu rekonstruieren. Falls es sich aber um eine Sprache handelt, die das Programm in Maschinencode uebersetzt (C/ C++/ Pascal/ Ada), dann hast du keine Chance (Ergebnisse wie "int eax=0;" helfen mir zumindest nicht weiter).
 
Zurück
Oben