
「悪用可能なバグへの道は、悪用不可能なバグで舗装されている。」
-- Mark Dowd
Rhabdomancer は、バイナリファイル内の潜在的に安全でない API 関数への呼び出しを特定する、超高速な IDA ヘッドレスプラグインです。監査担当者は、これらの候補ポイントからバックトレースして、信頼できない入力へのアクセスを可能にする経路を見つけることができます。

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 の既知の危険な API 関数のリストをカスタマイズします。RHABDOMANCER_CONFIG 環境変数を設定することで、デフォルトの設定ファイルの場所を上書きできます。IDADIR 環境変数が設定されていることを確認します。rhabdomancer <binary_file>
.i64 IDB ファイルがある場合は更新され、ない場合は新しい IDB ファイルが作成されます。.i64 IDB ファイルを IDA で開きます。表示 > サブビューを開く > ブックマーク を選択します。[!NOTE] Rhabdomancer は、マークされた呼び出し位置にコメントも追加します。
公式にサポートされているのは最新の IDA リリースのみですが、古いバージョンでも動作する可能性があります。次の表は、各 IDA バージョンで互換性のある最新リリースをまとめたものです:
[!NOTE] 追加情報については、idalib-rs のドキュメントを確認してください。
このプロジェクトの開発は、以下の組織によってサポートされています:
normalize_name の正規化の範囲を広げることを検討する。| 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 | 現在のリリース |