Voltar às atualizações
New releaseAug 13, 2026

oneiromancer v0.9.1

Assistente de engenharia reversa que usa um LLM executado localmente para auxiliar na análise de pseudocódigo.

Compartilhar

oneiromancer

build

"Uma grande parte das falhas no desenvolvimento de software deve-se ao fato de que os programadores não compreendem totalmente todos os possíveis estados em que seu código pode ser executado." -- John Carmack

"Será que roda Doom?" -- https://canitrundoom.org/

Oneiromancer é um assistente de engenharia reversa que utiliza um LLM executado localmente, ajustado especificamente para pseudocódigo do Hex-Rays, para auxiliar na análise de código. Ele pode analisar uma função ou um trecho de código menor, retornando uma descrição de alto nível do que o código faz, um nome recomendado para a função e sugestões de renomeação de variáveis, com base nos resultados da análise.

Recursos

  • Suporte multiplataforma para o LLM ajustado aidapal baseado em mistral-7b-instruct.
  • Fácil integração com o extrator de pseudocódigo haruspex e IDEs populares.
  • Descrição do código, nome recomendado para a função e sugestões de renomeação de variáveis são exibidos no terminal.
  • O pseudocódigo aprimorado de cada função analisada é salvo em um arquivo separado para fácil inspeção.
  • Crates externos podem invocar analyze_code ou analyze_file para analisar pseudocódigo e então processar os resultados da análise.

Artigo

Veja também

Instalação

A maneira mais fácil de obter a versão mais recente é via crates.io:

cargo install oneiromancer --locked

Para instalar como biblioteca, execute o seguinte comando no diretório do seu projeto:

cargo add oneiromancer

Compilação

Alternativamente, você pode compilar a partir do código-fonte:

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

Configuração

  1. Baixe e instale o Ollama.
  2. Baixe os pesos ajustados e o modelfile do Ollama do 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. Configure o Ollama executando os seguintes comandos dentro do diretório no qual você baixou os arquivos:
    ollama create aidapal -f aidapal.modelfile
    ollama list
    

Uso

  1. Execute o oneiromancer da seguinte forma:
    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. Encontre o pseudocódigo aprimorado em <target_file>.out.c:
    vim <target_file>.out.c
    code <target_file>.out.c
    

[!TIP] Para melhores resultados, submeta uma função por vez para ser analisada pelo LLM.

Compatibilidade

Testado com Ollama 0.32.9 em:

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

Créditos

  • Chris Bellows (@AverageBusinessUser) da Atredis Partners por seu LLM ajustado aidapal <3

Changelog

TODO

  • Melhorar o tratamento do arquivo de saída com versionamento e/ou um diretório de saída.
  • Implementar outros recursos do plugin aidapal do IDAPython para IDA Pro (por exemplo, contexto).
  • Integrar com haruspex e idalib.
  • Implementar um protocolo de "minority report" (ou seja, fazer três consultas e selecionar as melhores respostas).
  • Considerar uma refatoração da renomeação de variáveis para evitar possível corrupção de código.
  • Investigar outros casos de uso para o LLM aidapal e implementar uma arquitetura modular para plugar LLMs personalizados.

Categorias