Disassembler

Disassembler

Ein Disassembler ist ein Computerprogramm, das die binär kodierte Maschinensprache eines ausführbaren Programmes in eine für Menschen lesbarere Assemblersprache umwandelt. Er ist also ein spezieller Übersetzer, der den umgekehrten Arbeitsvorgang eines Assemblers durchführt.

Inhaltsverzeichnis

Funktionsweise

Zu jedem Prozessorbefehl existiert ein gleichwertiger Assemblerbefehl, ein so genannter Mnemonic. Auch die einzelnen Argumente der Prozessorbefehle, wie Registernummern und Speicheradressen lassen sich eins zu eins in Assemblercode übertragen. Ein Disassembler macht also nichts anderes, als die binären Repräsentationen der Prozessorbefehle durch für Menschen lesbare zu ersetzen.

Wenn ein Programm direkt in Assembler geschrieben wurde lässt sich der ursprüngliche Code im Allgemeinen nicht wieder herstellen. Pseudobefehle, Labels und Kommentare haben keine oder zumindest keine direkte, d. h. eindeutig umkehrbare Entsprechung im Maschinencode, was die Rekonstruktion derselben sehr schwer oder gar unmöglich macht. Ist ein Programm hingegen in einer höheren Programmiersprache geschrieben, hat der Compiler meist diverse Optimierungen vorgenommen, was das Programm schneller, aber den Maschinencode komplexer macht.

Ein reines Disassemblat ist damit also oft deutlich schlechter lesbar als der ursprüngliche (Assembler-)Code.

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.

Rechtliche Aspekte

Proprietäre Software steht oft unter einer EULA, die das Disassemblieren sowie Dekompilieren untersagt. Dies ist jedoch in Deutschland 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]

Die Tätigkeit des Disassemblierens ist bei urheberrechtlich geschützten Programmen allerdings in einigen Ländern durch gesetzliche Bestimmungen reglementiert, da das Disassemblieren die Möglichkeit eröffnet, den Code zu ändern und danach wieder in ein Programm zu assemblieren. So könnte z. B. von erfahrenen Assembler-Programmierern und Crackern eine Passwortabfrage entfernt, eine aus lizenzrechtlichen Gründen abgeschaltete Funktion aktiviert, oder ein Virus unbemerkt in das Programm eingeschleust werden. Ausführliche Erläuterungen zu diesem Aspekt von Disassemblern und vergleichbaren Werkzeugen finden sich im Artikel Reverse Engineering.

Rechtshinweis Bitte den Hinweis zu Rechtsthemen beachten!

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. Weitere Software zum disassemblieren ist eine Kombination aus W32DASM und SoftICE.

Der Vorgang des Disassemblierens wird in der deutschsprachigen Fachliteratur teilweise auch mit den Begriffen entassemblieren oder entkompilieren bezeichnet, was aber das gleiche meint.

Quellen

  1. In Deutschland gemäß § 69e UrhG (Dekompilierung)

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Disassembler —   [dt. »Auseinandernehmer«] der, (Reassembler), ein Programm, mit dem sich aus einem ausführbaren Programm (also einem Maschinencode) ein Code in Assemblersprache gewinnen lässt. Der Disassembler ist damit das Gegenstück eines Assemblers. Die… …   Universal-Lexikon

  • disassembler — dis as*sem bler n. (Computers) a computer program that takes as input a computer program in machine language and produces an equivalent assembly language file. [PJC] …   The Collaborative International Dictionary of English

  • disassembler —  Disassembler  Дизассемблер   В молекулярных нанотехнологиях наномашина или система наномашин, способная разбирать предмет, записывая на каждой стадии разборки информацию о конструкции и составе этого предмета на молекулярном уровне …   Толковый англо-русский словарь по нанотехнологии. - М.

  • Disassembler — A disassembler is a computer program that translates machine language into assembly language the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high level language rather than an assembly… …   Wikipedia

  • disassembler — UK [ˌdɪsəˈsemblə(r)] / US [ˌdɪsəˈsemblər] noun [countable] Word forms disassembler : singular disassembler plural disassemblers computing a piece of software that changes machine language back into assembly language …   English dictionary

  • disassembler — noun A computer program that examines another computer program and attempts to generate assembly language source code that would, in theory, reproduce the target program. <!CORRECT, BUT ENCYCLOPEDIC: In practice, the output of a disassembler… …   Wiktionary

  • disassembler — deasembleris statusas T sritis informatika apibrėžtis Programa, kompiuterinį programos kodą paverčianti į ↑asembleriu pavaizduotą programą. Pavertimas gali būti nevienareikšmis – deasembleriu gauta programa gali nesutapti su originalia programa,… …   Enciklopedinis kompiuterijos žodynas

  • Disassembler (artist) — Disassembler Disassembler circa 2007 Background information Birth name William Collier Born February 28, 1985 …   Wikipedia

  • Disassembler — Dis|as|sem|bler* [ disəsɛmblə] der; s, <zu ↑dis... u. ↑Assembler> Programm (4), das ein Maschinenprogramm in ein Assemblerprogramm umsetzt (EDV) …   Das große Fremdwörterbuch

  • disassembler — disassemˈbler noun (computing) A program that translates from machine code to an assembly language • • • Main Entry: ↑disassemble …   Useful english dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”