IDACODE erleichtert die Ausführung und Debugie von Python -Skripten in Ihrer IDA -Umgebung, ohne den Code von Visual Studio zu verlassen. Die VS -Code -Erweiterung finden Sie auf dem Markt.
Idacode befindet sich immer noch in einem sehr frühen Zustand und Fehler sind zu erwarten. Bitte eröffnen Sie ein neues Problem, wenn Sie auf Probleme stoßen.
debugpy für die Kommunikation verwendet, synchronisiert es das Ausgabefenster auf natürliche Weise mit dem Ausgangsfeld des VS -Code.Idacode unterstützt sowohl Python 2 als auch Python 3!
So richten Sie die Abhängigkeiten für den IDA -Plugin -Lauf ein:
# make sure to use the correct Python version
# IDACode supports the latest debugpy as of version 3.0.0, make sure to upgrade!
python -m pip install --user debugpy tornado Entweder klonen Sie dieses Repository oder laden Sie hier ein Release -Paket herunter. ida.zip spiegelt den Inhalt des ida -Ordners in diesem Repository wider. Kopieren Sie alle Dateien in das IDAS -Plugin -Verzeichnis.
Der nächste Schritt besteht darin, Ihre Einstellungen so zu konfigurieren, dass sie Ihrer Umgebung entspricht. Bearbeiten Sie idacode_utils/settings.py entsprechend:
HOST : Dies ist die Host -Adresse. Dies ist immer 127.0.0.1 , es sei denn, Sie möchten, dass es von einem abgelegenen Ort zugänglich ist. Denken Sie daran, dass dieses Plugin keine Authentifizierung verwendet.PORT : Dies ist der Port, den Sie anhören sollen. Dies wird für die Kommunikation von Websocket zwischen IDA und VS Code verwendet.DEBUG_PORT : Dies ist der Port, den Sie für eingehende Debug -Sitzungen hören möchten.PYTHON : Dies ist der absolute Weg zur Python -Verteilung, die Ihr IDA -Setup verwendet.LOGGING : Bestimmt, ob sich der Debugger bei Dateien anmelden soll. Dies ist besonders nützlich, wenn Sie Probleme mit Idacode treffen. Bitte senden Sie eine neue Ausgabe, wenn Sie etwas finden. Die Dateien befinden sich immer in Ihrem TEMP -Verzeichnis (z. B. Windows: %TEMP% ). Die Dateien werden als debugpy.*.log . Sie können jetzt das Plugin starten, indem Sie im Menü Plugins auf IDACode klicken.
Die VS -Code -Erweiterung ist auf dem Markt erhältlich. Um die Erweiterung zu konfigurieren, lesen Sie bitte die Readme der Erweiterung.
Klicken Sie im Plugin -Menü IDACode . Sie sollten mit dem folgenden Text begrüßt werden:
IDACode listening on 127.0.0.1:7065
Ab Version 0.2.0 unterstützt IDACODE "Ausführen auf Speichern", was standardmäßig aktiviert ist. VS Code wird Ihr Skript automatisch in IDA ausführen, sobald Sie das aktuelle Dokument speichern (z. B. mit Strg+s). Dieses Verhalten kann in den Einstellungen deaktiviert werden.
Es gibt 4 Befehle zur Verfügung:

Sobald Sie einen Ordner geöffnet haben, in den Sie Ihre Skripte einfügen möchten (Sie müssen den Ordner angeben, wenn VS Code Sie auffordert!), Sie können eine Verbindung zu IDA herstellen. Sie können dies tun, indem Sie entweder Connect to IDA ausführen oder Connect and attach a debugger to IDA . Bitte beachten Sie, dass eine Debug -Sitzung dauerhaft ist, bis Sie IDA neu starten. Sie können den Workspace -Ordner nicht ändern, wenn der Debugger begonnen hat.
Stellen Sie sicher, dass der Workspace -Ordner der Ordner ist, in dem sich Ihre Hauptskripte befinden.
Sobald Sie verbunden sind, können Sie Execute script in IDA auswählen.
Idacode verwendet das Remote -Debugger von VS Code, um eine Verbindung zu IDA herzustellen. Alle VS -Codefunktionen werden unterstützt. Sie müssen jedoch den Einstiegspunkt der Skripts angeben, indem Sie die Python -integrierte Funktionalität verwenden: breakpoint . In dieser Anweisung wird der Debugger angegeben, die Ausführung zu pausieren. Wenn kein Debugger vorhanden ist, ignoriert er nur die Funktion. Idacode importiert ein Helferpaket namens dbg , das eine Überlastung von breakpoint namens bp implementiert. Diese Funktion unterstützt Protokollierung und Bedingungen:
name = idc . get_segm_name ( segment )
dbg . bp ( name == ".text" , f"found { name } at { segment } " ) Bitte beachten Sie außerdem, dass am Ende einer Datei ein breakpoint() -Anruf niemals auftreten sollte. Er muss immer vor einer anderen Codezeile erfolgen, da er auf der nächsten Anweisung in Ihrem Code aufbricht. Beachten Sie auch, dass Sie, wenn Sie sich für die Verwendung des dbg -Pakets entscheiden, entweder alle Referenzen entfernen oder die Variable __idacode__ als bedingt verwenden müssen, bevor Sie es als normales IDA -Skript ausführen.
Es ist auch wichtig, dass das Anbringen eines Debuggers eine neue Debugger -Instanz erstellt. In den meisten Fällen ist dies nicht das, was Sie wollen. Wenn Sie vom Debugger trennen, verwenden Sie den Remote -Debugger des Code, um eine Verbindung herzustellen.
