
"The road to exploitable bugs is paved with unexploitable bugs."
-- Mark Dowd
Rhabdomancer は、バイナリファイル内の潜在的に安全でない API 関数への呼び出しを特定する、驚異的に高速な IDA ヘッドレスプラグインです。監査担当者はこれらの候補ポイントからバックトレースして、信頼できない入力へのアクセスを可能にする経路を見つけることができます。

conf/rhabdomancer.toml を編集することで簡単にカスタマイズできます。最新リリースを入手する最も簡単な方法は crates.io を利用することです:
export IDADIR=/path/to/ida # if not set, the build script will check common locations
cargo install rhabdomancer
$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 rhabdomancer
あるいは、ソース からビルドすることもできます:
git clone --depth 1 https://github.com/0xdea/rhabdomancer
cd rhabdomancer
export IDADIR=/path/to/ida # if not set, the build script will check common locations
cargo build --release
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" # if not set, the build script will check common locations
cargo build --release
conf/rhabdomancer.toml で既知の危険な API 関数のリストをカスタマイズします。RHABDOMANCER_CONFIG 環境変数を設定することで、デフォルトの設定ファイルの場所を上書きできます。IDADIR 環境変数が設定されていることを確認します。rhabdomancer <binary_file>
.i64 IDB ファイルがある場合は更新され、ない場合は新しい IDB ファイルが作成されます。.i64 IDB ファイルを IDA で開きます。View > Open subviews > Bookmarks を選択します。[!NOTE] Rhabdomancer は、マークされた呼び出し箇所にコメントも追加します。
公式にサポートされているのは最新の IDA リリースのみですが、古いバージョンでも動作する場合があります。次の表は、各 IDA バージョンで最新の互換性のあるリリースをまとめたものです:
[!NOTE] 追加情報については、idalib-rs のドキュメントを確認してください。
このプロジェクトの開発は、以下の組織によって支援されています:
normalize_name の正規化の範囲を広げることを検討する。| IDA version | Latest compatible release |
|---|
| 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 | current release |