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

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

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

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

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

Категории

Все категории
Loading categories
rhabdomancer — Ассистент для исследования уязвимостей, который находит вызовы потенциально небезопасных функций API в бинарном файле. | Kitploit
Инструменты/GitHubGitHub/0xdea/rhabdomancer
Статический анализАнализ уязвимостейОбратная инженерияАнализ Бинарных Файлов
GitHub0xdea/rhabdomancer

rhabdomancer

Ассистент для исследования уязвимостей, который находит вызовы потенциально небезопасных функций API в бинарном файле.

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

Популярное

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

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

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

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

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

rhabdomancer

build doc

«Дорога к эксплуатируемым уязвимостям вымощена неэксплуатируемыми уязвимостями.»

-- Марк Дауд

Rhabdomancer — это молниеносный headless-плагин для IDA, который находит вызовы потенциально небезопасных API-функций в двоичном файле. Аудиторы могут выполнять обратное трассирование от этих кандидатных точек, чтобы найти пути, позволяющие получить доступ к недоверенным входным данным.

Возможности

  • Молниеносный headless-режим работы благодаря IDA 9.x и Rust-привязкам idalib-rs.
  • Поддержка C/C++ двоичных целей, скомпилированных для любой архитектуры, реализованной в IDA.
  • Местоположения вызовов небезопасных API-функций выводятся в stdout и помечаются в IDB.
  • Известные небезопасные API-функции сгруппированы по уровням опасности, чтобы помочь расставить приоритеты в работе аудита.
    • [BAD 0] Высокий приоритет — функции, которые в целом считаются небезопасными.
    • [BAD 1] Средний приоритет — интересные функции, которые следует проверить на небезопасные сценарии использования.
    • [BAD 2] Низкий приоритет — пути кода, включающие эти функции, следует тщательно проверить.
  • Список известных небезопасных API-функций можно легко настроить, отредактировав conf/rhabdomancer.toml.

Статьи

  • 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/Rhabdomancer.java
  • https://docs.hex-rays.com/release-notes/9_0#headless-processing-with-idalib
  • https://github.com/idalib-rs/idalib
  • https://books.google.it/books/about/The_Art_of_Software_Security_Assessment.html

Установка

Самый простой способ получить последний релиз — через 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 установите следующим образом:
    root@kitploit:~
    export IDADIR=/path/to/ida # если не задано, сценарий сборки проверит стандартные расположения
    cargo install rhabdomancer --locked
    
    В Windows вместо этого используйте следующие команды:
    root@kitploit:~
    $env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
    $env:PATH="\path\to\ida;$env:PATH"
    $env:IDADIR="\path\to\ida" # если не задано, сценарий сборки проверит стандартные расположения
    cargo install rhabdomancer --locked
    

Компиляция

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

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

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

  1. Убедитесь, что IDA правильно настроена с действующей лицензией.
  2. При необходимости настройте список известных небезопасных API-функций в conf/rhabdomancer.toml. Вы можете переопределить расположение файла конфигурации по умолчанию, задав переменную окружения RHABDOMANCER_CONFIG.
  3. Убедитесь, что переменная окружения IDADIR задана, если ваша установка IDA находится в нестандартном расположении.
  4. Запустите следующим образом:
    root@kitploit:~
    rhabdomancer <binary_file>
    
    Любой существующий файл IDB .i64 будет обновлён; в противном случае будет создан новый файл IDB.
  5. Откройте полученный файл IDB .i64 в IDA.
  6. Выберите View > Open subviews > Bookmarks
  7. Наслаждайтесь результатами, удобно собранными в окне IDA.

[!NOTE] Rhabdomancer также добавляет комментарии в отмеченных местах вызовов.

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

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

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

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

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

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

  • HN Security
  • Hex-Rays через свою программу для участников

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

  • CHANGELOG.md

TODO

  • Дальнейшее расширение списка известных небезопасных API-функций (см. https://github.com/0xdea/semgrep-rules).
  • Рассмотреть возможность расширения области нормализации в normalize_name для учёта большего числа случаев.
  • Реализовать базовый набор правил в стиле VulFi и VulnFanatic.
Скачать инструмент