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

oneiromancer v0.9.1

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

Поделиться

oneiromancer

build

«Бо́льшая часть ошибок в разработке программного обеспечения возникает из-за того, что программисты не до конца понимают все возможные состояния, в которых может выполняться их код». — Джон Кармак

«Может ли он запустить Doom?» — https://canitrundoom.org/

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

Возможности

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

Статья

См. также

Установка

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

cargo install oneiromancer

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

cargo add oneiromancer

Сборка

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

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

Настройка

  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

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

  • Крис Беллоуз (@AverageBusinessUser) из Atredis Partners за его дообученную LLM aidapal <3

Журнал изменений

TODO

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

Категории