
Plugin für Binary Ninja, das lokale Ollama-Modelle integriert, um Funktionen und Variablen in dekompiliertem HLIL-Code umzubenennen, wobei die Privatsphäre gewahrt bleibt, da die Analyse vollständig lokal und offline erfolgt.
Autor: Austin Haggard
Binary Ninja Ollama integriert sich in Ihren eigenen lokal gehosteten Ollama-Server, um Funktionen und Variablen mit KI umzubenennen
Ollama ist ein Tool, mit dem Sie Open-Source-KI-Modelle herunterladen und lokal ausführen können. Einige Modelle erfordern umfangreiche Rechenleistung, während andere auf Ihrem persönlichen Laptop ausgeführt werden können. Die Ergebnisse variieren stark je nachdem, welches Modell Sie verwenden :).
Warum dies anstelle von Sidekick/OpenAI verwenden?
Dieses Plugin integriert Ollama in Binary Ninja und unterstützt die unten aufgeführten Aktionen:
Wenn Sie dies als eigenständiges Plugin installieren, können Sie es in Binary Ninjas Plugin-Pfad platzieren (oder verlinken). Standardpfade sind in der Vector 35 Dokumentation beschrieben.
ollama installiert mit pip3 install ollamaDies erfordert, dass Sie Zugriff auf einen eigenen Ollama-Server haben oder diesen hosten und alle Modelle herunterladen, die Sie verwenden möchten.
Befolgen Sie die Anweisungen auf https://ollama.com, um Ihren Server einzurichten und alle Modelle herunterzuladen, die Sie ausprobieren möchten. Sobald dies erledigt ist, sollte ein Server automatisch gestartet und über localhost:11434 aufgerufen werden.
Die Option zum Umbenennen aller Funktionsvariablen analysiert alle Variablen innerhalb einer Funktion und versucht, sie basierend auf dem folgenden Prompt umzubenennen:
prompt = (
f"In one word, what should the variable '{variable}' be named in the below Function? "
f"The name must meet the following criteria: all lowercase letters, usable in Python code"
)

Die Option zum Umbenennen aller Funktionen durchläuft alle Funktionen, von der kleinsten zur größten, innerhalb einer BinaryView und benennt sie basierend auf dem Prompt um:
prompt = (
f"Given the following HLIL decompiled code snippet, provide a Python-style function name that describes what the code is doing. "
f"The name must meet the following criteria: all lowercase letters, usable in Python code, with underscores between words. "
f"Only return the function name and no other explanation or text data included."
)

Beim Umbenennen einer Zielfunktion wird derselbe Prompt wie beim Umbenennen aller Funktionen verwendet, jedoch auf die ausgewählte Funktion begrenzt, wenn das Plugin ausgelöst wird.
Beim Umbenennen einer Zielvariable wird derselbe Prompt wie beim Umbenennen aller Variablen verwendet, jedoch auf die ausgewählte Funktion begrenzt, wenn das Plugin ausgelöst wird.
Die Einstellungen werden beim ersten Aufruf einer Umbenennungsoperation ausgelöst, wenn Binary Ninja zum ersten Mal gestartet wird, oder durch manuelles Auslösen. Die angewendeten Einstellungen bleiben innerhalb einer Binary-Ninja-Sitzung erhalten.
Das Einstellungsfenster ermöglicht es Ihnen, IP, Port und Modell für die Verwendung in Ollama festzulegen. Nur heruntergeladene Modelle sind auswählbar.

Gibt es etwas, das Sie interessiert, das nicht enthalten ist?
Ideen:
Dieses Plugin wird unter einer MIT-Lizenz veröffentlicht.