Hallo
ich möchte ein Programm, von dem ich weiss, dass es in x86 geschrieben wurde, verändern, d.h. decompilieren (disassemblieren?). Was für Programme brauche ich dazu und wie funktioniert es? Kann ich den Code anschliessend irgendwie in C++ umwandeln, damit ich nicht noch x86 lernen muss?
ich möchte ein Programm, von dem ich weiss, dass es in x86 geschrieben wurde, verändern, d.h. decompilieren (disassemblieren?). Was für Programme brauche ich dazu und wie funktioniert es? Kann ich den Code anschliessend irgendwie in C++ umwandeln, damit ich nicht noch x86 lernen muss?
Einen Disassembler. Von einem Übersetzer ASM -> C++ weiß ich nichts. Brauchbar dürfte er nicht sein.
Ohnehin ist das alles nicht so ganz einfach. Schon ein Assembler-Programm mit einer Größe von sagen wir 16 KB ergibt mehrere tausend Assembler-Zeilen. Der Disassembler erkennt zudem nicht, ob es sich tatsächlich um Befehle oder um Daten handelt. Ich hatte vor vielen Jahren mal einige Assembler-Spiele auf einem Home Computer analysiert; das war eine wochenlange Arbeit.
Ohnehin ist das alles nicht so ganz einfach. Schon ein Assembler-Programm mit einer Größe von sagen wir 16 KB ergibt mehrere tausend Assembler-Zeilen. Der Disassembler erkennt zudem nicht, ob es sich tatsächlich um Befehle oder um Daten handelt. Ich hatte vor vielen Jahren mal einige Assembler-Spiele auf einem Home Computer analysiert; das war eine wochenlange Arbeit.
Wenn du das Programm in die Elemente des Quellcodes zerlegen, also den Kompilier-Vorgang rückgängig machen willst, brauchst du einen Decompiler (bezweifle aber, dass es einen guten Decompiler für x86 gibt). Mit einem Disassembler kannst du die Dateien im Assembler-Source-Code ansehen und (ebenfalls im Assembler-Source-Code) ändern; um eine neue Programmiersprache zu lernen (sofern du Assembler nicht beherrscht) kommst du also ohnehin nicht herum.
mfG,
LoK!
mfG,
LoK!
Logge dich ein um einen Beitrag zu schreiben.