|
Speziell bezogen auf Computer-Software wird darunter meistens einer der drei folgenden Vorgänge verstanden: - Die Rückgewinnung des Quellcodes oder einer vergleichbaren Beschreibung aus Binärcode. Z. B. von einem ausführbaren Programm oder einer Programmbibliothek, etwa mit einem Disassembler (kann Teil eines Debuggers sein) oder einem Decompiler.
- Die Erschließung der Regeln eines Kommunikationsprotokolls aus der Beobachtung der Kommunikation, z. B. mit einem Sniffer.
- Die nachträglichen Erstellung eines Modells ausgehend von bereits vorliegendem Quellcode in der objektorientierten Programmierung.
Im ersten Fall werden oft Decompiler eingesetzt, die den Quellcode eines Programms weitestgehend automatisch aus seinem Binärcode zurückgewinnen. Ist dieses nicht durchgehend möglich, so kann auch der aus dem Binärcode des Programms direkt mit einem Disassembler ermittelbare Maschinencode auch manuell analysiert werden, was allerdings eine merkliche Erschwernis bedeutet. Es kann i. d. R. nicht der komplette Programmquellcode ermittelt werden, da z. B. Kommentare nie, und lokale Objektnamen nur selten im verfügbaren Binärcode enthalten sind. Oft ist das Ergebnis trotz allem für den jeweiligen Zweck ausreichend, z. B. zur Verhaltensanalyse eines Softwaresystems oder als Hilfe beim Beheben eines Fehlers. |