Zum Inhalt springen

„Interactive Disassembler“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Siehe auch: Link-Fix
K Wikisyntax verwendet.
 
(27 dazwischenliegende Versionen von 19 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Software
{{Infobox Software
|Name =
| Programmiersprache = [[C++]]<ref>[//www.hex-rays.com/index.shtml Hex-Rays]</ref>
|Logo =
| Hersteller = Hex-Rays
|Screenshot =
| AktuelleVersion = 6.8<ref>[//www.hex-rays.com/products/ida/news.shtml What's New]</ref>
|Beschreibung =
| AktuelleVersionFreigabeDatum = {{Datum|13|4|2015}}
|Maintainer =
| Betriebssystem = [[Microsoft Windows|Windows]], [[Linux|GNU/Linux]], [[Mac OS X|Mac OS]]
|Hersteller = Hex-Rays
| Kategorie = [[Disassembler]]
|Erscheinungsjahr = 21. Mai 1991
| Lizenz = [[Proprietär]]
|AktuelleVersion = 9.0<ref>[https://docs.hex-rays.com/release-notes Release Notes]</ref>
| Website = [//www.hex-rays.com/products/ida/index.shtml www.hex-rays.com/products/ida/index.shtml]
|AktuelleVersionFreigabeDatum = 30. September 2024
|AktuelleVorabVersion =
|AktuelleVorabVersionFreigabeDatum =
|Betriebssystem = [[Microsoft Windows]], [[Linux]], [[Mac OS X]]
|Programmiersprache = [[C++]]<ref>[//www.hex-rays.com/index.shtml Hex-Rays]</ref>
|Kategorie = [[Disassembler]]
|Lizenz = [[Proprietär]]
|Deutsch = nein
|Website = [//www.hex-rays.com/products/ida/index.shtml www.hex-rays.com/products/ida/index.shtml]
|Dateien =
}}
}}


'''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.
Der '''Interactive Disassembler''' ('''IDA'''; {{deS|„''Interaktiver Disassembler''“}}) ist ein [[Disassembler]], der es ermöglicht, [[Binärcode]] in [[Assemblersprache]] umzuwandeln. Er unterstützt Prozessoren verschiedener Hersteller und Prozessorfamilien. Bei der automatischen Analyse des Binärcodes zieht IDA den benutzten Compiler sowie eine Datenbank mit Metadaten bekannter Funktionen mit in Betracht.<ref>{{Internetquelle |url=https://www.hex-rays.com/products/ida/lumina/ |titel=IDA: Lumina server – Hex Rays |abruf=2020-06-21 |sprache=en}}</ref> 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&nbsp;% in der Lage einen Binärcode korrekt zu dekodieren und profitiert von der Interaktion des Anwenders.
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.
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 [[Sprungmarke]]n 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.
In neueren Versionen besitzt IDA die Möglichkeit, auf Intel-Prozessoren den Binärcode unter seiner Kontrolle auszuführen und mit einem Debugger [[Haltepunkt (Programmierung)|Haltepunkte]] zu setzen. Damit ergeben sich neue Möglichkeiten, den Programmfluss des analysierten Binärcodes zu verstehen.


== Scripting ==
== Scripting ==
Erweiterungen ermöglichen die Erweiterung des Funktionsumfangs. Es werden bereits einige hilfreiche Skripte mitgeliefert, die als Vorlage für eigene Erweiterung dienen können. Am häufigsten werden Skripte zur weiteren Modifikation des erzeugten Codes benutzt. So können externe [[Symboltabelle]]n geladen und damit die Funktionsnamen des ursprünglichen Quellcodes wiederhergestellt werden. Erweiterungen existieren als so genannte IDC-Skripte und auf Basis von [[Python (Programmiersprache)|Python]].


Es gibt einige Webseiten, die sich speziell mit dem Scripting von IDA beschäftigen und Hilfen zu häufig auftretenden Problemen anbieten.
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 ==
== Einsatzgebiete ==
IDA eignet sich sowohl zur Analyse eigener Programme um z.&nbsp;B. die Effektivität eines benutzten Compilers zu überprüfen als auch zur Analyse fremder Programme. Von Sicherheitsforschern kann die Software z.&nbsp;B. für das Aufspüren von [[Sicherheitslücke]]n<nowiki/> verwendet werden oder um die Funktionsweise eines [[Schadprogramm]]es nachzuvollziehen.


== Unterstützte Systeme ==
IDA eignet sich sowohl zur Analyse eigener Programme - um z.&nbsp;B. die Effektivität eines benutzten Compilers zu überprüfen - als auch zur Analyse fremder Programme. Für [[Cracker (Computer)|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 ==

* [[Betriebssystem]]e
* [[Betriebssystem]]e
** [[Microsoft Windows]]
** [[Microsoft Windows|Windows]]
** [[Linux]]
** [[Linux]]
** [[Mac OS X]]
** [[macOS]]


* [[Mikroprozessor|Prozessoren]]
* [[Mikroprozessor]]en
** Intel 80x86/Pentium/i960
** [[x86-Prozessor]]en, z.&nbsp;B. [[Intel Pentium|Pentium]]
** ARM Risc
** [[Intel i960]]
** [[Arm-Architektur|Arm]]-RISC
** Motorola 68xxx/h8
** [[Motorola-68000er-Familie|Motorola 68xxx]]/h8
** Zilog Z80, MOS Technology 6502, Intel 8051, Intel i860, DEC PDP-11
** [[Zilog Z80]], [[MOS Technology 6502]], [[Intel 8051]], [[Intel i860]], [[DEC PDP-11]]


* [[Compiler]]
* [[Compiler]]
Zeile 47: Zeile 55:
** Borland C++ 3.1
** Borland C++ 3.1
** Borland C++ 5.x für DOS/Windows
** Borland C++ 5.x für DOS/Windows
** Microsoft C (16 bit) für DOS/Windows
** [[Microsoft C|Microsoft&nbsp;C/C++]] (16 bit) für DOS/Windows
** Microsoft Visual C++ v6
** [[Microsoft Visual C++]] v6
** Microsoft Visual Studio .Net
** [[Microsoft Visual Studio .NET]]
** Watcom C++ (16/32 bit) für DOS/OS2
** [[Watcom]] C++ (16/32 bit) für DOS/OS2
** ARM C v1.2
** ARM C v1.2


Zeile 58: Zeile 66:


== Literatur ==
== Literatur ==
* {{Literatur

|Autor=Chris Eagle
* {{Literatur | Autor=Chris Eagle | Sammelwerk= | Titel=The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler | Jahr=2008 | Verlag=No Starch Press | Ort=USA | ISBN=1-593-27178-6 | Seiten=640}}
|Titel=The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler
|Verlag=No Starch Press
|Ort=USA
|Datum=2008
|ISBN=1-59327-178-6
|Seiten=640}}


== Weblinks ==
== Weblinks ==

Aktuelle Version vom 1. Dezember 2024, 15:19 Uhr

Interactive Disassembler
Basisdaten

Entwickler Hex-Rays
Erscheinungsjahr 21. Mai 1991
Aktuelle Version 9.0[1]
(30. September 2024)
Betriebssystem Microsoft Windows, Linux, Mac OS X
Programmier­sprache C++[2]
Kategorie Disassembler
Lizenz Proprietär
deutschsprachig nein
www.hex-rays.com/products/ida/index.shtml

Der Interactive Disassembler (IDA; deutsch Interaktiver Disassembler) ist ein Disassembler, der es ermöglicht, Binärcode in Assemblersprache umzuwandeln. Er unterstützt Prozessoren verschiedener Hersteller und Prozessorfamilien. Bei der automatischen Analyse des Binärcodes zieht IDA den benutzten Compiler sowie eine Datenbank mit Metadaten bekannter Funktionen mit in Betracht.[3] 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.

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

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

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. Von Sicherheitsforschern kann die Software z. B. für das Aufspüren von Sicherheitslücken verwendet werden oder um die Funktionsweise eines Schadprogrammes nachzuvollziehen.

Unterstützte Systeme

[Bearbeiten | Quelltext bearbeiten]
  • Chris Eagle: The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler. No Starch Press, USA 2008, ISBN 1-59327-178-6, S. 640.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Release Notes
  2. Hex-Rays
  3. IDA: Lumina server – Hex Rays. Abgerufen am 21. Juni 2020 (englisch).