Frage von GuterFrager63, 4

Muss eine exe-Datei assemblierte Programmdaten enthalten, oder geht auch -zur Geschwindigkeitssteigerung- disassembliert?

Also ich meine, in welchem Format die Befehle in einer "exe-Datei" vorliegen muessen. Manchmal, wenn man eine exe-Datei mit dem Notepad oeffnet, lassen sich noch Fetzen von Hochsprachebefehle erkennen. Und: kann der Inhalt verschluesselt werden? In welchem Byte steht dann, ob verschluesselt oder nicht?

Antwort
von PWolff,

Generell erwartet Windows (wie auch früher DOS), dass eine exe-Datei in Maschinensprache für den jeweiligen Prozessor vorliegt.

Ob nun das komplette Programm in Maschinensprache vorliegt oder nur die Startprozedur, hängt vom Compiler ab.

Z. B. werden .NET-Programme in einen Zwischencode übersetzt. (Ich betrachte hier mal nur den Fall von .EXE-Dateien - man kann auch DLLs u. a. erzeugen.)

Das eigentliche Programm in der .exe-Datei ist sehr klein - es startet nur die "Laufzeitumgebung" des .NET-Systems, das sich dann um den kompletten Rest kümmert. Der Rest der .exe-Datei sind vom Standpunkt des Betriebssystems aus einfach nur "Daten".

Soweit ich weiß, kennt Windows keine eigene Verschlüsselung von ausführbaren Dateien. Falls ein Programm verschlüsselt ist, ist das Entschlüsselungsprogramm Teil des Ausgangsprogramms, das gestartet wird. Die entschlüsselten Teile werden dann dynamisch eingebunden (wie bei einer DLL)

Antwort
von MarkusGenervt,

Was Du da als "Fetzen von Hochsprachbefehlen" erkennst, sind die Sprung-Adressen der DLL-Aufrufe oder einfach Strings. Die werden nicht extra codiert oder chiffriert, da dies zusätzliche und unnötige Operationen bedürfte.

Ansonsten, was PWolff sagt.

Keine passende Antwort gefunden?

Fragen Sie die Community