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

conf/rhabdomancer.toml.Самый простой способ получить последний релиз — через crates.io:
export IDADIR=/path/to/ida # если не задано, сценарий сборки проверит стандартные расположения
cargo install rhabdomancer --locked
$env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
$env:PATH="\path\to\ida;$env:PATH"
$env:IDADIR="\path\to\ida" # если не задано, сценарий сборки проверит стандартные расположения
cargo install rhabdomancer --locked
В качестве альтернативы вы можете собрать из исходного кода:
git clone --depth 1 https://github.com/0xdea/rhabdomancer
cd rhabdomancer
export IDADIR=/path/to/ida # если не задано, сценарий сборки проверит стандартные расположения
cargo build --release --locked
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
conf/rhabdomancer.toml. Вы можете переопределить расположение
файла конфигурации по умолчанию, задав переменную окружения RHABDOMANCER_CONFIG.IDADIR задана, если ваша установка IDA находится в нестандартном расположении.rhabdomancer <binary_file>
.i64 будет обновлён; в противном случае будет создан новый файл IDB..i64 в IDA.View > Open subviews > Bookmarks[!NOTE] Rhabdomancer также добавляет комментарии в отмеченных местах вызовов.
Официально поддерживается только последний релиз IDA, но более старые версии также могут работать. В следующей таблице приведены последние совместимые релизы для каждой версии IDA:
| Версия IDA | Последний совместимый релиз |
|---|---|
| v9.0.240925 | v0.2.4 |
| v9.0.241217 | v0.3.5 |
| v9.1.250226 | v0.6.2 |
| v9.2.250908 | v0.7.6 |
| v9.3.260213 | v0.8.1 |
| v9.3.260327 | v0.9.0 |
| v9.3.260421 | v0.9.3 |
| v9.4.260714 | текущий релиз |
[!NOTE] Дополнительную информацию см. в документации idalib-rs.
Разработку этого проекта поддержали следующие организации:
normalize_name для учёта большего числа случаев.