PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : .exe in .c umwandeln?



Römer
14.03.2007, 18:40
Kann man .exe - Dateien in .c - Dateien umwandeln? geht das?

jar
14.03.2007, 18:47
ja ;)

disassemblieren und dann

void main(void)
asm
{
HIER DISASSEMBLIERTEN CODE EINFÜGEN
}
return

scnr :D

plusminus
17.03.2007, 13:16
Kann man .exe - Dateien in .c - Dateien umwandeln? geht das?

Wenn man auf extrem Revers-Engineering steht ^^

Dazu musst du den Assembler-Code dann auch wieder nach C übersetzen, viel spaß dabei ... :-({|=

kalledom
19.03.2007, 01:23
.... disassemblieren und dann .... Und wie hält der Disassembler Code, Tabellen und Daten auseinander ?

PICture
19.03.2007, 01:46
Hallo Römer!

Am eifachsten geht es mit entsprechendem C Decompiler.

MfG

p_mork
19.03.2007, 08:05
Hallo Römer!

Am eifachsten geht es mit entsprechendem C Decompiler.

MfG

Seit wann gibt es C Decompiler???

MfG Mark

Römer
19.03.2007, 13:27
gibt es jetzt Disassemblierer für C? Wenn ja, wo? Auch als Freeware oder ähnliches?

Felix G
19.03.2007, 13:34
Ich weiss zwar nicht was es so an Disassemblern/Decompilern gibt...

aber ich kann dir schonmal verraten, daß solche Tools meist keinen besonders gut lesbaren Code produzieren. Denn Variablennamen etc. stehen in der exe ja nicht mehr drin, und können demnach auch nicht rekonstruiert werden.

PICture
19.03.2007, 13:40
Hallo!

@p_mork!

Ich weiss nicht seit wann, weil ich nur beim google nach "C Dekompiler" geschaut habe.

@FelixG

Die Variablen sind meistens durchnumeriert und dennen muss man eigene Namen geben.

MfG

SprinterSB
19.03.2007, 16:57
gibt es jetzt Disassemblierer für C?

Falls überhaupt, wird das Ergebnis dich enttäuschen.

Was im Programm abgeht wirst du nicht blicken (ebenso viel oder wenig wie bei Assembler): block reordering, common subexpression elimination, scalar replacement of aggregates, insn scheduling und zig anderer Optimierungen, von denen man nicht mal den Name richtig aussprechen kann führen zu einem Assembler-Code, bei dem praktisch kein Zusammenhang mit der Quelle -- selbst wenn diese vorhanden ist! -- mehr erkennbar ist.
Auch wenn du den Code nur haben willst, um auf eine andere Plattform zu portieren, wirst du damit ziemlich sicher auf die Nase fallen.
Das exe enthält wie gesagt keine Symbolinfos (Variablen- und Funktionsnamen) mehr -- ausnehme, das exe wirde nicht gestrippt. Vielleicht hast du Glück und jemand, der keine Ahnung hat, hat das exe erzeugt. Ist aber unwahrscheinlich.
Codeabschnitte, die der Compiler weggeworfen hat (bedingtes Compilieren, common subexpresion elimination, constant propagation, dead code elimination, constant folding, ...) wirst du niemals nicht decompiliert bekommen. Schlicht und einfach deshalb, weil sieser Code nicht in der exe gelandet ist.

p_mork
20.03.2007, 12:26
Ich weiss zwar nicht was es so an Disassemblern/Decompilern gibt...

MASM kann .exe deassemblieren, wenn Du ASM kannst, wirste in bei einem Programm nach ein paar Tagen code studieren die Titelleiste ändern können O:)

MfG Mark