
Assistente per la ricerca di vulnerabilità che individua le chiamate a funzioni API potenzialmente non sicure in un file binario.
"La strada verso i bug sfruttabili è lastricata di bug non sfruttabili."
-- Mark Dowd
Rhabdomancer è un plugin headless per IDA estremamente veloce che individua le chiamate a funzioni API potenzialmente insicure in un file binario. Gli auditor possono risalire da questi punti candidati per trovare percorsi che consentono l'accesso a input non attendibili.

conf/rhabdomancer.toml.Il modo più semplice per ottenere l'ultima release è tramite 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
In alternativa, puoi compilare dal sorgente:
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 se necessario. Puoi sovrascrivere la posizione predefinita del file di configurazione impostando la variabile d'ambiente RHABDOMANCER_CONFIG.IDADIR sia impostata se la tua installazione di IDA si trova in una posizione non standard.rhabdomancer <binary_file>
.i64 esistente verrà aggiornato; in caso contrario, verrà creato un nuovo file IDB..i64 risultante con IDA.View > Open subviews > Bookmarks[!NOTE] Rhabdomancer aggiunge anche commenti nelle posizioni delle chiamate marcate.
Solo l'ultima versione di IDA è ufficialmente supportata, ma le versioni precedenti potrebbero funzionare comunque. La seguente tabella riassume l'ultima release compatibile per ciascuna versione di IDA:
[!NOTE] Consulta la documentazione di idalib-rs per ulteriori informazioni.
Lo sviluppo di questo progetto è stato supportato dalle seguenti organizzazioni:
normalize_name per coprire più casi.| Versione IDA | Ultima release compatibile |
|---|
| 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 | release corrente |