Now Reading
Wir stellen IPyIDA vor: Ein Pythonschlange-Plugin z. Hd. Ihr Reverse-Engineering-Toolkit

Wir stellen IPyIDA vor: Ein Pythonschlange-Plugin z. Hd. Ihr Reverse-Engineering-Toolkit

Wir stellen IPyIDA vor: Ein Python-Plugin für Ihr Reverse-Engineering-Toolkit

[ad_1]

ESET Research kündigt IPyIDA 2.0 an, ein Pythonschlange-Plugin, dasjenige IPython und Jupyter Notebook in IDA integriert

IDA Pro von Hex-Rays ist heute wahrscheinlich dasjenige beliebteste Tool z. Hd. Reverse-Engineering-Software. Z. Hd. ESET-Forscher ist dieses Tool ein beliebter Disassembler und hat die Erschaffung des IPyIDA-Plugins inspiriert, dasjenige zusammenführen IPython-Kernel in IDA Pro einbettet. Seit dem Zeitpunkt 2014 in kontinuierlicher Erschaffung, freuen wir uns, die Veröffentlichung von Version 2.0 prominent zu schenken. IPyIDA dient einem ähnlichen Zweck wie ein anderes Plugin namens IDA IPython, jedoch mit einer Wendung: Während IDA IPython nur Windows unterstützt, unterstützt IPyIDA macOS, Linux und Windows.

Wenn Sie schon mit IDA Pro und IPython vertraut sind, verkehren Sie mit dem letzten Stückchen dieses Artikels mehr als IPyIDA fort. Wenn Sie mit IPython nicht vertraut sind, verkehren Sie mit dem mittleren Stückchen fort. Wenn Sie letzten Endes eine kurze Tutorial in IDA Pro wünschen, dann Vorlesung halten Sie weiter.

Welches ist IDA Pro?

IDA Pro ist ein Disassembler, jener Maschinencode in Assemblercode übersetzt. Nachdem dem Laden einer File zerlegt IDA Pro selbige und speichert die Prüfung in Datenbankdateien. IDA Pro bietet verschiedene Fenster in die elektronischer Karteikasten, von denen jedes dem Forscher hilft, den interessierenden Source zu finden und besser zu verstehen.

Schauen wir uns wenige dieser Fenster an, während wir die laden MathLibrary.dll-Filedie mit dem Tutorial von Microsoft zum Erstellen einer DLL-File erstellt werden kann.

Ausgabefenster

Dasjenige Ausgabefenster zeigt Meldungen zum Status jener Prüfung einer File, Fehlermeldungen z. Hd. vom Benutzer angeforderte Vorgänge und die Erteilung einiger Plugins an. Diagramm 1 zeigt dasjenige Ausgabefenster nachher dem ersten Laden MathLibrary.dll.

Diagramm 1. Dasjenige IDA-Ausgabefenster

Am unteren Rand dieses Fensters befindet sich ein Eingabefeld, dasjenige Befehle akzeptiert. Diagramm 2 zeigt die beiden standardmäßigen Befehlssprachenanbieter, die seit dieser Zeit Version 7.3 mit IDA geliefert werden: IDC z. Hd. Befehle, die in einer Kohlenstoff-ähnlichen Sprache geschrieben wurden, die in IDA naturbelassen ist, und dasjenige IDAPython-Plugin z. Hd. Befehle, die in Pythonschlange geschrieben sind.

Diagramm 2. Dasjenige Eingabefeld zum Schreiben von Pythonschlange-Befehligen in IDA

IDA-Ansichtsfenster

Dasjenige IDA-Ansichtsfenster, gleichermaßen Disassemblierungsfenster genannt, hat zwei Anzeigeformate: Diagrammansicht und Textansicht. Die Graphansicht visualisiert den Programmablauf, während Funktionen in Blöcke mit einem einzigen Eintritts- und einem einzigen Austrittspunkt unterteilt werden. Diagramm 3 zeigt die Diagrammansicht.

Diagramm 3. Die IDA-Demontagediagrammansicht

Die Textansicht bietet eine lineare Unterstellung jener Disassemblierung, die virtuelle Adressen, Assemblierungscode und Kommentare anzeigt. Diagramm 4 zeigt die Textansicht.

Diagramm 4. Textansicht jener IDA-Disassemblierung

Zusätzlich zu diesen und vielen anderen Fenstern, die IDA bereitstellt, ermöglicht Ihnen IDA, benutzerdefinierte Plugins zu schreiben, die seine Funktionen erweitern und praktische Reverse-Engineering-Probleme trennen. Wenden wir uns IPython und einigen attraktiven Funktionen zu, die es Reverse Engineers bietet, die Pythonschlange-Skripte in IDA verwenden.

Ein Blick hinauf IPython

Während IDAPython die grundlegenden Anforderungen zum Konkretisieren von Pythonschlange-Skripten und -Befehligen in IDA erfüllt, wurden Pythonschlange-Enthusiasten vom IPython-Pyrexie erfasst. IPython ist ein Toolkit, dasjenige eine interaktivere Erlebnis mit Pythonschlange bietet. IPython verwendet ein Zwei-Prozess-Normal, vorhanden aus einem Kernel und einem Client. Welcher Kernel ist ein Prozess, jener Befehle vom Client empfängt, sie ausführt und die Ergebnisse zurückgibt. Welcher Client kann eine irgendwelche interaktive Stützbalken wie Jupyter Console, Jupyter Qt Console oder Jupyter Notebook sein.

Die interaktive Natur dieser Clients ergibt sich aus jener Vielzahl von Funktionen, die sie jener klassischen Pythonschlange-Shell hinzufügen. Diagramm 5 zeigt die Verwendung eines mehrzeiligen Codeblocks zum Definieren einer Unterprogramm in IPython.

Diagramm 5. Verwenden eines mehrzeiligen Codeblocks zum Definieren einer Unterprogramm in IPython

Befolgen Sie die Syntaxhervorhebung von Ganzzahlen, Schlüsselwörtern, integrierten Funktionen und Zeichenfolgen.

Durch Zwängen jener Tab key stellt IPython eine verkettete Liste relevanter Attribute, Objekte oder Funktionen zur Hand, die den Source vervollständigen können. Fig. 6 zeigt Auflistungsfunktionen zur Tabulatorvervollständigung, die z. Hd. ein Zeichenfolgenobjekt relevant sind.

Diagramm 6. Tab-Vervollständigung in IPython

Die Tab-Vervollständigung ist reichhaltiger, wenn Jedi installiert ist.

IPython bietet gleichermaßen magische Funktionen, die normalerweise mit a aufgerufen werden % oder %% Vorsilbe- und Take-Argumente mit einer Syntax im Befehlszeilenstil. Diagramm 7 zeigt die %timeit magische Unterprogramm, die die Erklärung eines Pythonschlange-Ausdrucks zeitgesteuert ausführt.

Diagramm 7. Eine magische Unterprogramm in IPython

Durch die Verwendung von ! am Werden einer Befehlszeile steht, übergibt die IPython-Stützbalken den Gebot zur Erklärung an die zugrunde liegende System-Shell. Ein beliebter Gebot ist wie pip, jener Pakete aus dem Pythonschlange Package Klassifizierung (PyPi) installiert und verwaltet. Diagramm 8 zeigt die !Pip Gebot, jener von IPython umgesetzt wird.

Diagramm 8. Konkretisieren von System-Shell-Befehligen von IPython

IPython bietet viele weitere interaktive Funktionen, die in jener offiziellen Dokumentation erkundet werden können.

IPyIDA: IPython zu IDA erwirtschaften

Mit jener Veröffentlichung von IPyIDA 2.0 ist dasjenige Schreiben von Pythonschlange-Skripten in IDA aufgrund jener folgenden Vorteile benutzerfreundlicher:

  • Unterstützung z. Hd. IDA unter Windows, Linux und macOS
  • Ein Installationsskript z. Hd. eine einfache Vorrichtung, gleichermaßen in einer virtuellen Umgebung
  • Eine Jupyter Qt-Stützbalken, die in einem IDA-Fenster umgesetzt wird
  • Ein IPython-Kernel, jener sich von external von IDA mit Frontends wie Jupyter Console verbinden kann.
  • Ein Jupyter-Kernel-Proxy zur Unterstützung des Öffnens eines Jupyter-Notebooks, dasjenige mit dem eine Zusammenhang zum IPython-Kernel herstellt %open_notebook magische Unterprogramm

Diagramm 9 zeigt den Vorgang zum Öffnen eines Jupyter-Notebooks von IPyIDA.

Diagramm 9. Die %open_notebook magische Unterprogramm in IPyIDA

Diagramm 10 zeigt eine Jupyter-Stützbalken, die in einer Terminalsitzung external von IDA umgesetzt wird und eine Zusammenhang zum IPython-Kernel in IDA herstellt.

Diagramm 10. Eine Jupyter-Stützbalken external von IDA, die eine Zusammenhang zum IPython-Kernel in IDA herstellt

Die Wahl jener Jupyter Qt-Stützbalken z. Hd. IPyIDA bringt zusätzliche interaktive Funktionen zur traditionellen IPython-Stützbalken, wie z. B. Inline-Grafiken, Speichern und Drucken jener aktuellen Sitzung und vollständiges Syntax-Highlighting. Sie sind in jener offiziellen Dokumentation z. Hd. die Jupyter Qt-Stützbalken dargestellt.

IPyIDA bietet sogar seine eigenen interaktiven Funktionen, die von IDA inspiriert sind. Diagramm 11 zeigt, dass ein Strg-Klick (Cmd-Klick hinauf macOS) hinauf Adressen oder Variablennamen in jener IPython-Stützbalken die Unterstellung zur virtuellen Postanschrift im Disassemblierungsfenster springt.

Diagramm 11. Strg-Klick hinauf eine Variable oder Postanschrift in IPyIDA springt zu jener Postanschrift im Disassembly-Fenster von IDA

Diagramm 12 zeigt zusammenführen Hex-Dump z. Hd. ein Byte-Datenfeld mit Nicht-ASCII-Inhalt.

Diagramm 12. IPyIDA zeigt Hex-Dumps an

Wenn Sie neu im Zusammenhang IDA Pro sind, ist IPyIDA eine große Hilfe, um sich mit jener IDA-API vertraut zu zeugen. Wenn Sie ein Veteran sind, macht IPyIDA dasjenige Pythonschlange-Skripting viel einfacher und somit die Zeit, die Sie mit Reverse Engineering verleben, hoffentlich fokussierter und fruchtbarer.

[ad_2]
View Comments (0)

Leave a Reply

Your email address will not be published.

Scroll To Top