Wie kann ich den Code in .exe Dateien sehen?
Ich habe ein Programm bei dem ich nicht genau weiß was dieses enthält,
will nun aber wissen was dort als Code steht. Da ich Linux habe sehe ich die nicht als großes Problem, passe aber trotzdem auf.
Wie kann ich sehen was dort als Code steht und diesen vielleicht sogar ändern?
4 Antworten
wenn diese zb in c# geschreiben wurde dann mit dnspy https://github.com/dnSpy/dnSpy oder wenn diese in c++ compiled wurde kannst du diese nur über zb ghidra https://ghidra-sre.org bedingt sehen
Kommt auf die Ursprungssprache an. .NET Programme kannst Du mit ildasm sehr einfach dekompilieren. Mit ILSpy sogar nach C#.
Wenn es aber ein C/C++-Programm ist oder aus einer anderen Programmiersprache, die direkt zu Maschinencode compiliert, dann kannst Du es nur disassemblieren und das ist unschön.
Also erstmal liefern beide nur Assembler-Code. Sie können eventuell noch irgendwelche API-Aufrufe (z.B. DLL Aufrufe) abbilden, aber das wars auch schon, wenn die Anwendung nicht mit Debug-Informationen kompiliert wurde.
Klar, mit genügend Aufwand kannst Du Dich natürlich auch mit Assembler rumschlagen und herausfinden, was passiert, aber schön ist anders.
Und es gibt meines Wissens nach schlicht und einfach kein Tool welches aus einem Binärkompilat wieder "schicken C++ Code" erstellen kann.
hast du discord könnte dir da mal zeigen es ist mehr oder weniger lesbarer code bzw viel verständlicher als ASM
Na dann ist das ja umso besser. Aber ob der Fragesteller damit was anfangen kann, steht nochmal auf einem ganz anderen Blatt. Er kann ja mal versuchen, sich in ein ihm unbekanntes Open Source Projekt einzuarbeiten und schauen, wie weit er kommt... 😀
hier kannst du das mal sehen wie das dann aussieht was IDA in anzeigen kann basierend auf den ASM code https://reverseengineering.stackexchange.com/questions/2549/how-to-obtain-x86-64-pseudocode-in-ida-pro
Kann ich denn irgendwie sehen was das Programm macht, also nicht nur die Benutzeroberfläche
Nein. Außer, wie gesagt, Du kannst Assembler oder das Programm kann, weil es z.B. ein .NET Programm ist, in Quellcode rückübersetzt werden.
objdump -d prog.exe >disas.asm
Die Idee ist nicht schlecht, aber ich denke kaum, dass der FA Assembler versteht :)
im allgemeinen Fall gar nicht.
naja aber so sachen wie Ghidra und IDA haben ja etwas wo du den Decompilierten code / pseudocode sehen kannst wenn man viel arbeit reinsteckt und viel benennt könnte man auch was gut erkennen