Назад к обновлениям
New releaseAug 13, 2026

oneiromancer v0.9.1

Ассистент для реверс-инжиниринга, использующий локально запущенную LLM для помощи в анализе псевдокода.

Поделиться

oneiromancer

build

"Большая часть недостатков в разработке программного обеспечения связана с тем, что программисты не до конца понимают все возможные состояния, в которых может выполняться их код." -- John Carmack

"Запустит ли он Doom?" -- https://canitrundoom.org/

Oneiromancer — это ассистент для обратной разработки, использующий локально запущенную LLM, дообученную на псевдокоде Hex-Rays, для помощи в анализе кода. Он может анализировать функцию или небольшой фрагмент кода, возвращая высокоуровневое описание того, что делает код, рекомендуемое имя для функции и предложения по переименованию переменных, основанные на результатах анализа.

Возможности

  • Кроссплатформенная поддержка дообученной LLM aidapal на основе mistral-7b-instruct.
  • Простая интеграция с извлекателем псевдокода haruspex и популярными IDE.
  • Описание кода, рекомендуемое имя функции и предложения по переименованию переменных выводятся в терминал.
  • Улучшенный псевдокод каждой проанализированной функции сохраняется в отдельный файл для удобного просмотра.
  • Внешние крейты могут вызывать analyze_code или analyze_file для анализа псевдокода и последующей обработки результатов анализа.

Статья

См. также

Установка

Самый простой способ получить последний релиз — через crates.io:

cargo install oneiromancer --locked

Чтобы установить как библиотеку, выполните следующую команду в каталоге вашего проекта:

cargo add oneiromancer

Компиляция

Кроме того, вы можете собрать из исходного кода:

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

Настройка

  1. Скачайте и установите Ollama.
  2. Скачайте дообученные веса и modelfile для Ollama с 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. Настройте Ollama, выполнив следующие команды в каталоге, в который вы скачали файлы:
    ollama create aidapal -f aidapal.modelfile
    ollama list
    

Использование

  1. Запустите oneiromancer следующим образом:
    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. Найдите улучшенный псевдокод в <target_file>.out.c:
    vim <target_file>.out.c
    code <target_file>.out.c
    

[!TIP] Для лучших результатов отправляйте на анализ LLM по одной функции за раз.

Совместимость

Протестировано с Ollama 0.32.9 на:

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

Благодарности

  • Chris Bellows (@AverageBusinessUser) из Atredis Partners за его дообученную LLM aidapal <3

История изменений

TODO

  • Улучшить обработку выходных файлов с помощью версионирования и/или выходного каталога.
  • Реализовать другие возможности плагина aidapal для IDA Pro на IDAPython (например, контекст).
  • Интегрировать с haruspex и idalib.
  • Реализовать протокол "minority report" (то есть выполнить три запроса и выбрать лучшие ответы).
  • Рассмотреть рефакторинг переименования переменных, чтобы предотвратить потенциальное повреждение кода.
  • Исследовать другие варианты использования LLM aidapal и реализовать модульную архитектуру для подключения пользовательских LLM.

Категории