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

"Una gran parte dei difetti nello sviluppo del software è dovuta al fatto che i programmatori non comprendono appieno tutti i possibili stati in cui il loro codice può essere eseguito." -- John Carmack

"Può far girare Doom?" -- https://canitrundoom.org/

Oneiromancer è un assistente di reverse engineering che utilizza un LLM eseguito localmente e ottimizzato (fine-tuned) per lo pseudocodice di Hex-Rays, allo scopo di facilitare l'analisi del codice. Può analizzare una funzione o un frammento di codice più piccolo, restituendo una descrizione ad 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.

Caratteristiche

  • Supporto multipiattaforma per l'LLM ottimizzato aidapal basato su mistral-7b-instruct.
  • Facile integrazione con l'estrattore di pseudocodice haruspex e gli IDE più diffusi.
  • Descrizione del codice, nome di funzione consigliato e 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 consultazione.
  • Le crate esterne possono invocare analyze_code o analyze_file per analizzare lo pseudocodice e poi elaborare i risultati dell'analisi.

Articolo

Vedi anche

Installazione

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

cargo install oneiromancer

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 https://github.com/0xdea/oneiromancer
cd oneiromancer
cargo build --release

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 nel seguente modo:
    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 risultati ottimali, 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) presso Atredis Partners per il suo LLM ottimizzato aidapal <3

Registro delle modifiche

TODO

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

Categorie