Retour aux mises à jour
New releaseAug 13, 2026

oneiromancer v0.9.1

Assistant de rétro-ingénierie utilisant un LLM local pour aider à l'analyse de pseudocode.

Partager

oneiromancer

build

« Une grande partie des défauts dans le développement logiciel provient du fait que les programmeurs ne comprennent pas pleinement tous les états dans lesquels leur code peut s'exécuter. » -- John Carmack

« Peut-il faire tourner Doom ? » -- https://canitrundoom.org/

Oneiromancer est un assistant de rétro-ingénierie qui utilise un LLM exécuté localement, affiné pour le pseudo-code Hex-Rays, afin de faciliter l'analyse de code. Il peut analyser une fonction ou un extrait de code plus court, renvoyant une description de haut niveau de ce que fait le code, un nom recommandé pour la fonction, et des suggestions de renommage de variables, sur la base des résultats de l'analyse.

Fonctionnalités

  • Prise en charge multiplateforme du LLM affiné aidapal basé sur mistral-7b-instruct.
  • Intégration facile avec l'extracteur de pseudo-code haruspex et les IDE populaires.
  • Description du code, nom de fonction recommandé et suggestions de renommage de variables sont affichés sur le terminal.
  • Le pseudo-code amélioré de chaque fonction analysée est enregistré dans un fichier séparé pour une inspection facile.
  • Les crates externes peuvent invoquer analyze_code ou analyze_file pour analyser le pseudo-code puis traiter les résultats de l'analyse.

Article

Voir aussi

Installation

La façon la plus simple d'obtenir la dernière version est via crates.io :

cargo install oneiromancer

Pour installer en tant que bibliothèque, exécutez la commande suivante dans le répertoire de votre projet :

cargo add oneiromancer

Compilation

Vous pouvez également compiler à partir des sources :

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

Configuration

  1. Téléchargez et installez Ollama.
  2. Téléchargez les poids affinés et le modelfile Ollama depuis 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. Configurez Ollama en exécutant les commandes suivantes dans le répertoire où vous avez téléchargé les fichiers :
    ollama create aidapal -f aidapal.modelfile
    ollama list
    

Utilisation

  1. Exécutez oneiromancer comme suit :
    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. Retrouvez le pseudo-code amélioré dans <target_file>.out.c :
    vim <target_file>.out.c
    code <target_file>.out.c
    

[!TIP] Pour de meilleurs résultats, soumettez une fonction à la fois à l'analyse par le LLM.

Compatibilité

Testé avec Ollama 0.32.9 sur :

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

Crédits

  • Chris Bellows (@AverageBusinessUser) chez Atredis Partners pour son LLM affiné aidapal <3

Journal des modifications

À faire

  • Améliorer la gestion des fichiers de sortie avec versionnage et/ou un répertoire de sortie.
  • Implémenter d'autres fonctionnalités du plugin IDA Pro aidapal IDAPython (par exemple, le contexte).
  • Intégrer avec haruspex et idalib.
  • Implémenter un protocole de « rapport minoritaire » (c'est-à-dire faire trois requêtes et sélectionner les meilleures réponses).
  • Envisager un refactor du renommage de variables pour prévenir une corruption potentielle du code.
  • Explorer d'autres cas d'utilisation du LLM aidapal et implémenter une architecture modulaire pour brancher des LLM personnalisés.

Catégories