Volver a actualizaciones
Nuevo releaseAug 13, 2026

oneiromancer v0.9.1

Asistente de ingeniería inversa que utiliza un LLM que se ejecuta localmente para ayudar con el análisis de pseudocódigo.

Compartir

oneiromancer

build

"Una gran fracción de los defectos en el desarrollo de software se deben a que los programadores no comprenden completamente todos los estados posibles en los que su código puede ejecutarse." -- John Carmack

"¿Puede ejecutar Doom?" -- https://canitrundoom.org/

Oneiromancer es un asistente de ingeniería inversa que utiliza un LLM que se ejecuta localmente y que ha sido ajustado (fine-tuning) para pseudocódigo de Hex-Rays, con el fin de ayudar en el análisis de código. Puede analizar una función o un fragmento de código más pequeño, devolviendo una descripción de alto nivel de lo que hace el código, un nombre recomendado para la función y sugerencias de renombrado de variables, basadas en los resultados del análisis.

Features

  • Soporte multiplataforma para el LLM ajustado aidapal basado en mistral-7b-instruct.
  • Integración sencilla con el extractor de pseudocódigo haruspex e IDEs populares.
  • La descripción del código, el nombre de función recomendado y las sugerencias de renombrado de variables se imprimen en la terminal.
  • El pseudocódigo mejorado de cada función analizada se guarda en un archivo separado para facilitar su inspección.
  • Las crates externas pueden invocar analyze_code o analyze_file para analizar pseudocódigo y luego procesar los resultados del análisis.

Article

See also

Installing

La forma más sencilla de obtener la última versión es a través de crates.io:

cargo install oneiromancer

Para instalarlo como librería, ejecuta el siguiente comando en el directorio de tu proyecto:

cargo add oneiromancer

Compiling

Alternativamente, puedes compilarlo desde el código fuente:

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

Configuration

  1. Descarga e instala Ollama.
  2. Descarga los pesos ajustados y el modelfile de Ollama desde 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 ejecutando los siguientes comandos dentro del directorio en el que descargaste los archivos:
    ollama create aidapal -f aidapal.modelfile
    ollama list
    

Usage

  1. Ejecuta oneiromancer de la siguiente manera:
    export OLLAMA_BASEURL=custom_baseurl # si no está definido, se usará el valor predeterminado
    export OLLAMA_MODEL=custom_model # si no está definido, se usará el valor predeterminado
    oneiromancer <target_file>.c
    
  2. Encuentra el pseudocódigo mejorado en <target_file>.out.c:
    vim <target_file>.out.c
    code <target_file>.out.c
    

[!TIP] Para obtener los mejores resultados, envía una función a la vez para que el LLM la analice.

Compatibility

Probado con Ollama 0.32.9 en:

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

Credits

  • A Chris Bellows (@AverageBusinessUser) de Atredis Partners por su LLM ajustado aidapal <3

Changelog

TODO

  • Mejorar el manejo de archivos de salida con versionado y/o un directorio de salida.
  • Implementar otras características del plugin aidapal de IDA Pro en IDAPython (p. ej., contexto).
  • Integrar con haruspex e idalib.
  • Implementar un protocolo de "minority report" (es decir, hacer tres consultas y seleccionar las mejores respuestas).
  • Considerar una refactorización del renombrado de variables para evitar una posible corrupción del código.
  • Investigar otros casos de uso para el LLM aidapal e implementar una arquitectura modular para conectar LLMs personalizados.

Categorías