Zurück zu den Updates
New releaseAug 13, 2026

oneiromancer v0.9.1

Reverse-Engineering-Assistent, der ein lokal laufendes LLM nutzt, um bei der Pseudocode-Analyse zu unterstützen.

Teilen

oneiromancer

build

„Ein großer Teil der Fehler in der Softwareentwicklung ist darauf zurückzuführen, dass Programmierer nicht vollständig verstehen, in welchen möglichen Zuständen ihr Code ausgeführt werden kann." -- John Carmack

„Kann es Doom ausführen?" -- https://canitrundoom.org/

Oneiromancer ist ein Reverse-Engineering-Assistent, der ein lokal laufendes, für Hex-Rays-Pseudocode feinabgestimmtes LLM verwendet, um die Codeanalyse zu unterstützen. Es kann eine Funktion oder einen kleineren Codeausschnitt analysieren und liefert auf der Grundlage der Analyseergebnisse eine allgemeine Beschreibung dessen, was der Code tut, einen empfohlenen Namen für die Funktion sowie Vorschläge zur Umbenennung von Variablen.

Funktionen

  • Plattformübergreifende Unterstützung für das feinabgestimmte LLM aidapal basierend auf mistral-7b-instruct.
  • Einfache Integration mit dem Pseudocode-Extraktor haruspex und gängigen IDEs.
  • Codebeschreibung, empfohlener Funktionsname und Vorschläge zur Umbenennung von Variablen werden im Terminal ausgegeben.
  • Der verbesserte Pseudocode jeder analysierten Funktion wird zur einfachen Überprüfung in einer separaten Datei gespeichert.
  • Externe Crates können analyze_code oder analyze_file aufrufen, um Pseudocode zu analysieren und anschließend die Analyseergebnisse zu verarbeiten.

Artikel

Siehe auch

Installation

Am einfachsten erhalten Sie die neueste Version über crates.io:

cargo install oneiromancer

Um es als Bibliothek zu installieren, führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus:

cargo add oneiromancer

Kompilieren

Alternativ können Sie es aus dem Quellcode bauen:

git clone https://github.com/0xdea/oneiromancer
cd oneiromancer
cargo build --release

Konfiguration

  1. Laden Sie Ollama herunter und installieren Sie es.
  2. Laden Sie die feinabgestimmten Gewichte und die Ollama-Modelldatei von Hugging Face herunter:
    wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal-8k.Q4_K_M.gguf
    wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal.modelfile
    
  3. Konfigurieren Sie Ollama, indem Sie die folgenden Befehle in dem Verzeichnis ausführen, in das Sie die Dateien heruntergeladen haben:
    ollama create aidapal -f aidapal.modelfile
    ollama list
    

Verwendung

  1. Führen Sie oneiromancer wie folgt aus:
    export OLLAMA_BASEURL=custom_baseurl # if not set, the default will be used
    export OLLAMA_MODEL=custom_model # if not set, the default will be used
    oneiromancer <target_file>.c
    
  2. Den verbesserten Pseudocode finden Sie in <target_file>.out.c:
    vim <target_file>.out.c
    code <target_file>.out.c
    

[!TIP] Für beste Ergebnisse übermitteln Sie jeweils eine Funktion zur Analyse an das LLM.

Kompatibilität

Getestet mit Ollama 0.32.9 auf:

  • Apple macOS Tahoe 26.5.2
  • Ubuntu Linux 24.04.2 LTS
  • Microsoft Windows 11 23H2

Credits

  • Chris Bellows (@AverageBusinessUser) bei Atredis Partners für sein feinabgestimmtes LLM aidapal <3

Changelog

TODO

  • Verbessern der Ausgabedateibehandlung mit Versionierung und/oder einem Ausgabeverzeichnis.
  • Implementieren weiterer Funktionen des IDAPython-aidapal-IDA-Pro-Plugins (z. B. Kontext).
  • Integrieren mit haruspex und idalib.
  • Implementieren eines „Minority-Report"-Protokolls (d. h. drei Abfragen durchführen und die besten Antworten auswählen).
  • Ein Refactoring der Variablenumbenennung in Betracht ziehen, um eine mögliche Korruption des Codes zu verhindern.
  • Weitere Anwendungsfälle für das aidapal-LLM untersuchen und eine modulare Architektur zum Einbinden benutzerdefinierter LLMs implementieren.

Kategorien