The Interactive Disassembler

The Interactive Disassembler

The Interactive Disassembler (kurz IDA) ist ein Disassembler, der es ermöglicht, Binärcode in Assembler-Quelltext umzuwandeln. Er unterstützt Prozessoren verschiedener Hersteller und Prozessorfamilien. Bei der automatischen Analyse des Binärcodes zieht IDA den benutzten Compiler mit in Betracht. Daraus resultiert eine besonders hohe Erkennungsrate von Bibliotheksfunktionen und deren Namen, die später das Verständnis des erzeugten Codes wesentlich vereinfachen.

Die Möglichkeit, interaktiv in die Analyse des Binärcodes einzugreifen, gibt dem erfahrenen Benutzer die Möglichkeit sein Wissen über das Programm oder dessen Struktur mit in die Dekodierung einfließen zu lassen. Letztlich ist ein Programm nicht zu 100 % in der Lage einen Binärcode korrekt zu dekodieren und profitiert von der Interaktion des Anwenders.

So können fälschlicherweise als Code interpretierte Daten in die richtige Darstellung umgewandelt werden und auch komplexe Datenstrukturen und Datentypen können in IDA angegeben werden. Bei der Umwandlung von Daten in Code wird automatisch eine funktionenbezogene Analyse des Codes durchgeführt und dieser entsprechend strukturiert und mit Sprungmarken bzw. Namen versehen.

In neueren Versionen besitzt IDA die Möglichkeit auf Intel-Prozessoren den Binärcode unter seiner Kontrolle auszuführen und mit einem Debugger Haltepunkte zu setzen. Damit ergeben sich neue Möglichkeiten, den Programmfluss des analysierten Binärcodes zu verstehen.

Inhaltsverzeichnis

Scripting

Erweiterungen, sogenannte IDC-Scripts ermöglichen die Erweiterung des Funktionsumfangs. Es werden bereits einige hilfreiche Scripts mitgeliefert, die als Vorlage für eigene Erweiterung dienen können. Am häufigsten werden Scripts zur weiteren Modifikation des erzeugten Codes benutzt. So können externe Symboltabellen geladen und damit die Funktionsnamen des ursprünglichen Quellcodes wiederhergestellt werden.

Es gibt einige Websites, die sich speziell mit dem Scripting von IDA beschäftigen und Hilfen zu häufig auftretenden Problemen anbieten.

Einsatzgebiete

IDA eignet sich sowohl zur Analyse eigener Programme - um z. B. die Effektivität eines benutzten Compilers zu überprüfen - als auch zur Analyse fremder Programme. Für Cracker ist dies die Grundlage für das nähere Verständnis eines zu verändernden Computerprogramms und das Beseitigen von Kopierschutz-Mechanismen.

Unterstützte Systeme

  • Prozessoren
    • Intel 80x86/Pentium/i960
    • ARM Risc
    • Motorola 68xxx/h8
    • Zilog Z80, MOS Technology 6502, Intel 8051, Intel i860, DEC PDP-11
  • Compiler
    • GNU C++ für Unix/common
    • GNU C++ für Cygwin
    • Borland C Builder v4 für DOS/Windows
    • Borland C++ 3.1
    • Borland C++ 5.x für DOS/Windows
    • Microsoft C (16 bit) für DOS/Windows
    • Microsoft Visual C++ v6
    • Microsoft Visual Studio .Net
    • Watcom C++ (16/32 bit) für DOS/OS2
    • ARM C v1.2

Siehe auch

Literatur

  • Chris Eagle: The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler. No Starch Press, USA 2008, ISBN 1-593-27178-6, S. 640.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

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

  • Interactive Disassembler — The Interactive Disassembler, more commonly known as simply IDA, is a commercial disassembler widely used for reverse engineering. It supports a variety of executable formats for different processors and operating systems. It also can be used as… …   Wikipedia

  • Interactive Disassembler — En informática, Interactive Disassembler (Desensamblador Interactivo), más conocido por su acrónimo IDA, es un desensamblador empleado para ingeniería inversa. Soporta una variedad de formatos ejecutables para diferentes procesadores y sistemas… …   Wikipedia Español

  • 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

  • Packet Assembler/Disassembler — A packet assembler/disassembler, abbreviated PAD is a communications device which provides multiple asynchronous terminal connectivity to an X.25 (packet switching) network or host computer. It collects data from a group of terminals and places… …   Wikipedia

  • Lazer's Interactive Symbolic Assembler — (Lisa) is an interactive MOS 6502 assembler for Apple II computers written by Randall Hyde in the late 1970s.The latest version of Lisa is V3.2. Syntax mistakes can be reported immediately in the edit mode. Lisa can assemble about 30,000 lines of …   Wikipedia

  • Reverse engineering — is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation. It often involves taking something (e.g., a mechanical device, electronic component, software… …   Wikipedia

  • Debuggen — Ein Debugger (von engl. bug im Sinne von Programmfehler) ist ein Werkzeug zum Diagnostizieren, Auffinden und Beheben von Fehlern in Computersystemen, dabei vor allem in Programmen, aber auch in der für die Ausführung benötigten Hardware.… …   Deutsch Wikipedia

  • Debugging — Ein Debugger (von engl. bug im Sinne von Programmfehler) ist ein Werkzeug zum Diagnostizieren, Auffinden und Beheben von Fehlern in Computersystemen, dabei vor allem in Programmen, aber auch in der für die Ausführung benötigten Hardware.… …   Deutsch Wikipedia

  • Disassemblieren — 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… …   Deutsch Wikipedia

  • Disassemblierung — 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… …   Deutsch Wikipedia

Share the article and excerpts

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