Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
haruspex — Ассистент для исследования уязвимостей, который извлекает псевдокод из декомпилятора IDA Hex-Rays. | Kitploit
Инструменты/GitHubGitHub/0xdea/haruspex
Статический анализ кода (SAST)Анализ уязвимостейОбратная инженерияАнализ Бинарных Файлов
GitHub0xdea/haruspex

haruspex

Ассистент для исследования уязвимостей, который извлекает псевдокод из декомпилятора IDA Hex-Rays.

Репозиторий
13110444 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

haruspex

build doc

"Хакинг — это дисциплина постоянного сомнения во всех своих предположениях."

-- Dave Aitel

Haruspex — это сверхбыстрый headless-плагин для IDA, который извлекает псевдокод, сгенерированный декомпилятором IDA, в формате, пригодном для импорта в IDE или для разбора инструментами статического анализа, такими как Semgrep, weggli или oneiromancer.

Возможности

  • Сверхбыстрая работа в headless-режиме благодаря IDA 9.x и Rust-биндингам idalib-rs.
  • Поддержка бинарных целей для любой архитектуры, реализованной декомпилятором Hex-Rays в IDA.
  • Псевдокод каждой функции сохраняется в отдельный файл в выходном каталоге для удобного просмотра.
  • Глобальные и пофункциональные определения типов извлекаются в заголовочные файлы рядом с псевдокодом.
  • Внешние крейты могут вызывать [decompile_to_file], чтобы декомпилировать функцию и сохранить её псевдокод и определения типов на диск, отличая функции, которые невозможно декомпилировать, от ошибок, таких как недоступная лицензия Hex-Rays.

Статьи

  • https://hex-rays.com/blog/streamlining-vulnerability-research-idalib-rust-bindings
  • https://hnsecurity.it/blog/streamlining-vulnerability-research-with-ida-pro-and-rust

См. также

  • https://github.com/0xdea/ghidra-scripts/blob/main/Haruspex.java
  • https://github.com/0xdea/semgrep-rules
  • https://github.com/0xdea/weggli-patterns
  • https://docs.hex-rays.com/release-notes/9_0#headless-processing-with-idalib
  • https://github.com/idalib-rs/idalib
  • https://github.com/xorpse/parascope
  • https://hnsecurity.it/blog/automating-binary-vulnerability-discovery-with-ghidra-and-semgrep

Установка

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

  1. Скачайте, установите и настройте IDA (см. https://hex-rays.com/ida-pro).
  2. Установите LLVM/Clang (см. https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. В Linux/macOS установка выполняется так:
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo install haruspex --locked
    
    В Windows вместо этого используйте следующие команды:
    $env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
    $env:PATH="\path\to\ida;$env:PATH"
    $env:IDADIR="\path\to\ida" # if not set, the build script will check common locations
    cargo install haruspex --locked
    

Компиляция

В качестве альтернативы можно собрать из исходников:

  1. Скачайте, установите и настройте IDA (см. https://hex-rays.com/ida-pro).
  2. Установите LLVM/Clang (см. https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. В Linux/macOS компиляция выполняется так:
    git clone --depth 1 https://github.com/0xdea/haruspex
    cd haruspex
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo build --release --locked
    
    В Windows вместо этого используйте следующие команды:
    git clone --depth 1 https://github.com/0xdea/haruspex
    cd haruspex
    $env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
    $env:PATH="\path\to\ida;$env:PATH"
    $env:IDADIR="\path\to\ida" # if not set, the build script will check common locations
    cargo build --release --locked
    

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

  1. Убедитесь, что IDA правильно настроена и имеет действующую лицензию.
  2. Убедитесь, что переменная окружения IDADIR задана, если ваша установка IDA находится в нестандартном месте.
  3. Запустите так:
    haruspex <binary_file>
    
  4. Извлечённый псевдокод и определения типов ищите в выходном каталоге рядом с <binary_file>, названном по имени файла с заменой его расширения, если оно есть, на .dec (например, foo.exe и foo оба дают foo.dec, так что бинарники, различающиеся только расширением, используют один и тот же выходной каталог):
    vim foo.dec
    code foo.dec
    

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

Официально поддерживается только последний релиз IDA, но более старые версии тоже могут работать. В следующей таблице приведены последние совместимые релизы для каждой версии IDA:

Версия IDAПоследний совместимый релиз
v9.0.240925v0.2.4
v9.0.241217v0.3.5
v9.1.250226v0.6.2
v9.2.250908v0.7.5
v9.3.260213v0.8.1
v9.3.260327v0.9.0
v9.3.260421v0.9.3
v9.4.260714current release
v9.4.260915current release

[!NOTE] Дополнительную информацию см. в документации idalib-rs.

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

Разработку этого проекта поддерживали следующие организации:

  • HN Security
  • Hex-Rays через их Contributor Program

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

  • CHANGELOG.md

TODO

  • Добавить регрессионный тест Semgrep CI, чтобы убедиться, что процент разобранных строк не снижается.
  • Использовать расширение .cpp вместо .c для вывода псевдокода (см. этот issue)?
  • Реализовать сериализованный вывод для облегчения автоматизированного разбора и анализа.
  • Интегрировать со сканированием Semgrep (см. https://github.com/0xdea/semgrep-rules).
  • Интегрировать со сканированием weggli (см. https://github.com/0xdea/weggli-patterns).
  • Улучшить вывод декомпилятора в стиле HexRaysPyTools и abyss.
  • Реализовать параллельный анализ (см. https://github.com/fugue-re/fugue-mptp).
Скачать инструмент