
Reverse-Engineering-Assistent, der ein lokal laufendes LLM nutzt, um bei der Pseudocode-Analyse zu unterstützen.
„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.

mistral-7b-instruct.analyze_code oder analyze_file aufrufen, um Pseudocode zu analysieren und anschließend die Analyseergebnisse zu verarbeiten.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
Alternativ können Sie es aus dem Quellcode bauen:
git clone https://github.com/0xdea/oneiromancer
cd oneiromancer
cargo build --release
wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal-8k.Q4_K_M.gguf
wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal.modelfile
ollama create aidapal -f aidapal.modelfile
ollama list
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
<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.
Getestet mit Ollama 0.32.9 auf:
aidapal <3aidapal-IDA-Pro-Plugins (z. B. Kontext).aidapal-LLM untersuchen und eine modulare Architektur zum Einbinden benutzerdefinierter LLMs implementieren.