Disassembler
aus Wikipedia, der freien Enzyklopädie
Ein Disassembler ist ein Computerprogramm, das die binär kodierte Maschinensprache eines ausführbaren Programmes in eine für Menschen lesbarere Assemblersprache oder Mnemonic umwandelt. Er ist also ein spezieller Übersetzer, der den umgekehrten Arbeitsvorgang eines Assemblers durchführt.
Inhaltsverzeichnis |
[Bearbeiten] Funktionsweise
Die Binärcodes des Befehlssatzes werden bestimmten Assemblerbefehlen zugeordnet. Die Bytes des Programms werden nacheinander durch diese Zuordnung in Assemblerbefehle umgewandelt. Der ursprüngliche Assemblerquelltext kann nicht vollständig wiederhergestellt werden, da viele interne Bezeichnungen vom Assembler nicht unter diesem Namen assembliert wurden und somit nicht mehr im Binärcode vorhanden sind.
[Bearbeiten] Nutzen
Der Zweck eines Disassemblers liegt meistens darin, die Diagnose und das Auffinden von potenziellen Fehlern in einem Programm zu erleichtern oder die Ausgabe eines Compilers zu überprüfen. Gelegentlich wird er auch zum Reverse Engineering benutzt.
[Bearbeiten] Rechtliche Aspekte
Proprietäre Software steht oft unter einer EULA, die das Disassemblieren sowie Decompilieren untersagt. Dies ist jedoch nur in seltenen Fällen rechtlich bindend. Auch ist Reverse-Engineering zur Herstellung von Kompatibilität mit der Software dritter ausdrücklich gesetzlich gesichert erlaubt - und damit nicht durch einen Lizenzvertrag zu unterbinden. [1]
[Bearbeiten] Sonstiges
Nahezu alle Debugger enthalten einen Disassembler. Auch Programme zur Inspektion von Binärdateien enthalten oftmals einen Disassembler. Manche Assembler beinhalten auch einen Disassembler. Ein bekannter und häufig eingesetzter Disassembler ist zum Beispiel IDA von Ilfak Guilfanov, da er Assemblercode strukturiert anzeigen kann.
Der Vorgang des Disassemblierens wird in der deutschsprachigen Fachliteratur teilweise auch mit den Begriffen entassemblieren oder entkompilieren bezeichnet, was aber das gleiche meint.