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 alle möglichen Zustände vollständig verstehen, in denen 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 LLM verwendet, das für Hex-Rays Pseudocode feinabgestimmt wurde, um bei der Codeanalyse zu helfen. Es kann eine Funktion oder einen kleineren Codeausschnitt analysieren und liefert eine High-Level-Beschreibung dessen, was der Code tut, einen empfohlenen Namen für die Funktion und Vorschläge zur Umbenennung von Variablen, basierend auf den Ergebnissen der Analyse.

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 Variablenumbenennung werden im Terminal ausgegeben.
  • Der verbesserte Pseudocode jeder analysierten Funktion wird in einer separaten Datei zur einfachen Überprüfung 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

Der einfachste Weg, die neueste Version zu erhalten, ist über crates.io:

cargo install oneiromancer --locked

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

cargo add oneiromancer

Kompilieren

Alternativ können Sie aus dem Quellcode bauen:

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

Konfiguration

  1. Laden Sie Ollama herunter und installieren Sie es.
  2. Laden Sie die feinabgestimmten Gewichte und die Ollama-Modelfile 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. Finden Sie den verbesserten Pseudocode in <target_file>.out.c:
    vim <target_file>.out.c
    code <target_file>.out.c
    

[!TIP] Für beste Ergebnisse übergeben 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

Danksagungen

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

Changelog

TODO

  • Verbesserung der Ausgabedateiverwaltung mit Versionierung und/oder einem Ausgabeverzeichnis.
  • Implementierung weiterer Funktionen des IDAPython aidapal IDA Pro Plugins (z. B. Kontext).
  • Integration mit haruspex und idalib.
  • Implementierung eines "Minority Report"-Protokolls (d. h. drei Abfragen durchführen und die besten Antworten auswählen).
  • Erwägung eines Refactorings der Variablenumbenennung, um potenzielle Codebeschädigung zu verhindern.
  • Untersuchung weiterer Anwendungsfälle für das aidapal LLM und Implementierung einer modularen Architektur zum Einbinden benutzerdefinierter LLMs.

Kategorien