WikiDer > Interaktiver Disassembler

Interactive Disassembler

Interaktiver Disassembler, oft kurz IDAA oder IDA Pro genannt, ist ein Disassembler von Software, d. h. ein Programm, das Computerprogramme aus der binären Maschinensprache in für den Programmierer besser lesbaren Assemblercode übersetzt. Das Programm ist ursprünglich als Shareware entwickelt von Ilfak Guilfanov, ein Russisch Softwareentwickler und Sicherheitsexperte. Später wurde das Programm als kommerzielles Produkt verkauft von Datenrettung, ein belgisches Unternehmen, das es verbessert und unter dem Namen IDA Pro verkauft hat. Eine kostenlose Version der Software ist noch verfügbar, aber diese Version ist in der Funktionalität eingeschränkt.

2007 gründete Guilfanov das Unternehmen Hexenstrahlen, mit dem er die Entwicklung einer Erweiterung für IDA, dem Hex-Rays Decompiler, betreute. Seit Januar 2008 kümmert sich Hex-Rays auch selbst um die Entwicklung und den Support von IDA Pro.

IDA Pro unterstützt verschiedene Formate von ausführbaren Dateien für verschiedene Prozessoren und Betriebssysteme, wie Microsoft Windows, Mac OS X und Linux. Darüber hinaus gibt es mehrere kommerzielle Plug-Ins für dieses Programm, z. B. eines, das Assembler-Code in C-Code umwandeln kann, und eines, das mit einem C/C-Compiler kompilierte Programme disassemblieren kann. Die neueste Vollversion von IDA Pro ist ein kommerzielles Softwarepaket. Frühere Versionen, die weniger Funktionalität hatten als die aktuelle Vollversion, waren kostenlos.

In vielen Fällen kann IDA Variablen und Funktionen eines kompilierten Programms erkennen und dem Benutzer anzeigen. Auch von Programmen verwendete Bibliotheken können von IDA erkannt werden. Dies geschieht mit dem Schnelle Bibliotheksidentifikations- und -erkennungstechnologie (FLIRT), das ist Englisch für "Technologie zum schnellen Erkennen und Identifizieren von Bibliotheken".

Ein Merkmal von IDA ist, dass es viel Interaktivität ermöglicht. Zum Beispiel kann der Benutzer des Programms die Übersetzungsstriche mit Anmerkungen versehen und Anpassungen vornehmen, wodurch Unvollkommenheiten der automatischen Übersetzungen vom Binärcode in den Assemblercode manuell korrigiert werden können. Der Benutzer kann auch Zwischenergebnisse in der IDA Pro-Datenbank speichern, einer Datendatei für Informationen aus diesem Programm. Es kann Notizen sowie Benutzernamen für entdeckte Funktionen des analysierten Codes speichern.

Das grafische Benutzeroberfläche von IDA Pro zeigt Informationen in mehreren Fenstern an. Beispielsweise werden Funktionen eines analysierten Programms in einem anderen Fenster angezeigt als Namen, Datenstrukturen und Strings (Strings aus alphanumerischen Zeichen). IDA Pro kann auch grafische Darstellungen von Analysen anzeigen, wie z Flussdiagramme.

Tatsächlich sind mehrere kommerzielle Versionen von IDA Pro verfügbar. Eine erweiterte Version des Programms verfügt über mehr Funktionen, wie z. B. die Unterstützung von mehr Prozessortypen. Unterstützte binäre ausführbare Formate umfassen Portable Executable (PE), Common Object File Format (COFF), Executable and Linking Format (ELF) und a.out.

Skripte

Die Bedienung von IDA kann mit sogenannten „IDC-Skripten“ erweitert werden. Diese Skripte enthalten Anweisungen, die vom Benutzer des Programms geschrieben werden können. In IDA sind einige Beispielskripte enthalten, die das Schreiben von IDC-Skripten erleichtern. Es gibt Websites, die sich auf das Schreiben von IDC-Skripten spezialisiert haben und dabei helfen können.

Darüber hinaus wurden auch für IDA Plug-Ins entwickelt, die es ermöglichen, auch andere gängige Skriptsprachen mit dieser Software zu verwenden. IdaRUB unterstützt Ruby und IDAPython bietet die Möglichkeit, Python-Skripte zu verwenden. Seit Version 5.4 von Ida Pro wird IDAPython bei der Installation von IDA Pro standardmäßig installiert. Dadurch ist die Verwendung von IDC-Skripten und Python-Skripten bei IDA Pro zum Standard geworden. Die Skripte lassen sich bequem mit wenigen Mausklicks aus der grafischen Benutzerumgebung von IDA aufrufen.

Anwendungen

IDA erleichtert die Analyse von Programmen, deren Quellcode nicht freigegeben wurde. Dies kann sowohl für legitime als auch für illegale Zwecke erfolgen. Softwareentwickler können sehen, wie effektiv ihre Software ist und inwieweit ihre Programme, für die sie den Quellcode nicht freigeben, von anderen verstanden werden können. Durch Sicherheitspersonal, Shell-Code kann zur Abwehr von Angriffen auf Computersysteme verwendet werden. Durch Computer-Cracker IDA kann verwendet werden, um Schwachstellen in Programmen zu erkennen oder den Kopierschutz von Programmen zu umgehen.

Externe Links