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 parte 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 para pseudocódigo de Hex-Rays para ayudar con 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, basándose en los resultados del análisis.

Características

  • Soporte multiplataforma para el LLM ajustado aidapal basado en mistral-7b-instruct.
  • Fácil integración con el extractor de pseudocódigo haruspex y 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.
  • Los crates externos pueden invocar analyze_code o analyze_file para analizar pseudocódigo y luego procesar los resultados del análisis.

Artículo

Véase también

Instalación

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

cargo install oneiromancer --locked

Para instalarlo como biblioteca, ejecuta el siguiente comando en el directorio de tu proyecto:

cargo add oneiromancer

Compilación

Alternativamente, puedes compilar desde el código fuente:

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

Configuración

  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
    

Uso

  1. Ejecuta oneiromancer de la siguiente manera:
    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. Encuentra el pseudocódigo mejorado en <target_file>.out.c:
    vim <target_file>.out.c
    code <target_file>.out.c
    

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

Compatibilidad

Probado con Ollama 0.32.9 en:

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

Créditos

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

Registro de cambios

TODO

  • Mejorar el manejo del archivo de salida con versionado y/o un directorio de salida.
  • Implementar otras características del plugin de IDA Pro aidapal de IDAPython (p. ej., contexto).
  • Integrar con haruspex e idalib.
  • Implementar un protocolo de "minority report" (es decir, realizar tres consultas y seleccionar las mejores respuestas).
  • Considerar una refactorización del renombrado de variables para prevenir 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