Hex-Code in Sourcecode umwandeln?

Hi.

Angenommen ich habe den Hexcode von irgendeinem Programm habe, z.B ich schreibe in C oder in irgendeiner anderen Sprache ein Prog und öffne es dann mit einem Hexeditor.

Wie kann ich jetzt vom Hexcode auf den Programmcode schließen? Bzw. kann ich den Hexcode in irgendeiner Programmiersprache öffnen?

Ich möchte also von Hexcode auf den Programmcode z.B:

Hexzahlen --> Binärzahlen --> Assemblercode

Müsste doch gehen. Zumindest in Assemblercode. Es gibt doch bestimmt ein Tool, das die Hexzahlen in Binärcode umrechnet. Wenn ich dann die Binärzahlen habe, müsste ich es doch irgendwie in die Mnemonics umwandeln können.

Weiß jemand wie das genau geht? Oder kennst jemand solche Tools?

Bin für jede Hilfe dankbar.

mfg
Bleeding
 
Ich nehme an, du meinst sowas wie einen Dis-Assembler oder einen Debugger.

Kannst ja mal nach "Hiew" googlen, der ist zwar (meines Wissens) nicht mehr zeitgemäß, aber er ist ziemlich klein und du kannst mal testen, ob das ungefähr dem entspricht, was du suchst.
 
Ich dachte ein Disassembler kann nur eine exe oder com Datei in den Assemblersource zurückwandeln. Aber was mach ich, wenn ich wie gesagt nur den Hexcode eines Programms habe? Kann der Disassembler auch vom Hexcode auf den Source schließen?

Kann ich auch z.B ein C Programm oder ein Programm in einer anderen Sprache in Assemblercode umwandeln? Über den Umweg des Hexcodes?
Da es ja für C keine Decompiler gibt.

mfg
BleedingSoul
 
Richtig, aufgrund der Unterschiede in den Übersetzung des verschiedenen
Compiler von "C Sources" sieht auch das "Disassemblat" jedes Mal ein wenig anders
aus, aber man kann sich NICHT den "C Source" anzeigen lassen. Du musst Dir schon
das "Disassemblat" anschauen und verstehen. Ist doch eigentlich auch logisch, der
Compiler übersetzt deine "Hochsprache" in eine "Low Level Language". Dies kann
man nicht rückgängig machen.

MfG Rushjo
 
Danke Rushjo. Wenn ich alles verstanden habe heißt das ( bitte verbessern wenn ich irgendwo falsch liege, ich muss das genau wissen) :

Ich kann jede exe Datei egal in welcher Sprache sie geschrieben wurde mit einem Disassembler in einen Assemblerquellcode umwandeln.

Ich kann aber aus der exe nicht auf den Sourcecode einer höheren Sprache ( z.B C ) rückschließen.

Eine Frage blieb noch offen: Wie kann ich den Hexcode einer exe in den Assemblerquellcode umwandeln? Angenommen ich hätte die exe Datei nicht mehr sondern nur noch den Hexcode.

Danke.

mfg
Bleeding
 
@bleed666

Deine Ausführungen sind richtig. Mit der Einschränkung, Du kannst schon auf die
Sprache "schliessen", aber das "Disassemblat" nicht zurück übersetzen auf einen
Quelltext mit "C/C++ Befehlen".

Rein theoretisch kannst Du den gesamten Hex-Code zurück in eine Datei schreiben
und dann als ".exe" benennen. Diese ".exe" kannst Du dann mit einem Disassembler
wie z.B. "W32dsm89" "desassemblieren". Voil?! <-- Dies funktioniert aber nur, wenn
Du wirklich ALLE Zeichen des Hex-Code hast. Ansonsten hast Du nur "Daten-Müll".

MfG Rushjo
 
Es gibt C Decompiler? Sicher? Können die wie ganz normale D Compiler wie z.B in Assembler jede exe Datei decompilieren, oder gibt es da Einschränkungen?

Woher weisst du das? Hast du selber welche? Irgendwie bezweifle ich das!

Dann könnte man damit ja Teile von Windows decompilieren. z.B den Taskmanager, die Eingabeaufforderung???

Kannst du mir konkrete Namen sagen?

Bei Assembler z.B ist es klar: der Code hat immer die gleiche Syntax ( oder sehr) ähnlich. Aber eine Hochsprache wie C? Dann müsste der Decompiler ja den Sourcecode machen wie es ihm grad passt.

Danke.

mfg
Bleeding
 
Sorry war etwas voreilig. Durch Suchen mit Google hab ich das gefunden:

dcc
The dcc decompiler decompiles .exe files from the (i386, DOS) platform to C programs. The final C program contains assembler code for any subroutines that are not possible to be decompiled at a higher level than assembler

http://www.itee.uq.edu.au/~cristina/dcc.html

Also gibt es schon C Decompiler aber diese Compilieren nicht den ganzen Code sondern nur den Teil den sie können und der Rest ist Assembler.

mfg
BleedingSoul
 
Ja des gibts. Nur dass dann alle Namen unleserlich sind und niemand mehr was sinvolles draus lesen könnte. Keine kommentare, keine Variablennamen - einfach nichts mehr da.
Das kling zwar ein bisschen seltsam zu sagen, dass das dann niemand mehr lesen kann - stimmt aber wirklich. Probiers aus!
 
Zurück
Oben