Torna agli aggiornamenti
New releaseAug 13, 2026

oneiromancer v0.9.1

Assistente di reverse engineering che utilizza un LLM in esecuzione locale per l'analisi dello pseudocodice.

Condividi

oneiromancer

build

"A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in." -- John Carmack

"Can it run Doom?" -- https://canitrundoom.org/

Oneiromancer è un assistente di reverse engineering che utilizza un LLM in esecuzione locale, ottimizzato per il pseudocodice di Hex-Rays, per agevolare l'analisi del codice. Può analizzare una funzione o un frammento di codice più piccolo, restituendo una descrizione di alto livello di ciò che il codice fa, un nome consigliato per la funzione e suggerimenti per la rinomina delle variabili, in base ai risultati dell'analisi.

Funzionalità

  • Supporto multipiattaforma per l'LLM ottimizzato aidapal basato su mistral-7b-instruct.
  • Facilità di integrazione con l'estrattore di pseudocodice haruspex e con i più diffusi IDE.
  • La descrizione del codice, il nome consigliato per la funzione e i suggerimenti per la rinomina delle variabili vengono stampati sul terminale.
  • Lo pseudocodice migliorato di ogni funzione analizzata viene salvato in un file separato per una facile ispezione.
  • Crate esterni possono invocare analyze_code o analyze_file per analizzare lo pseudocodice e poi elaborare i risultati dell'analisi.

Articolo

Vedi anche

Installazione

Il modo più semplice per ottenere l'ultima release è tramite crates.io:

cargo install oneiromancer --locked

Per installarlo come libreria, esegui il seguente comando nella directory del tuo progetto:

cargo add oneiromancer

Compilazione

In alternativa, puoi compilare dal sorgente:

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

Configurazione

  1. Scarica e installa Ollama.
  2. Scarica i pesi ottimizzati e il modelfile di Ollama da Hugging Face:
    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. Configura Ollama eseguendo i seguenti comandi nella directory in cui hai scaricato i file:
    ollama create aidapal -f aidapal.modelfile
    ollama list
    

Utilizzo

  1. Esegui oneiromancer come segue:
    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. Trova lo pseudocodice migliorato in <target_file>.out.c:
    vim <target_file>.out.c
    code <target_file>.out.c
    

[!TIP] Per ottenere i risultati migliori, invia una funzione alla volta per l'analisi da parte dell'LLM.

Compatibilità

Testato con Ollama 0.32.9 su:

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

Crediti

  • Chris Bellows (@AverageBusinessUser) di Atredis Partners per il suo LLM ottimizzato aidapal <3

Changelog

TODO

  • Migliorare la gestione dei file di output con versioning e/o una directory di output.
  • Implementare altre funzionalità del plugin IDA Pro aidapal per IDAPython (ad esempio, il contesto).
  • Integrare con haruspex e idalib.
  • Implementare un protocollo "minority report" (ovvero, effettuare tre query e selezionare le risposte migliori).
  • Valutare un refactoring della rinomina delle variabili per prevenire potenziali corruzioni del codice.
  • Studiare altri casi d'uso per l'LLM aidapal e implementare un'architettura modulare per collegare LLM personalizzati.

Categorie