
Asistente de investigación de vulnerabilidades que localiza llamadas a funciones de API potencialmente inseguras en un archivo binario.
"El camino hacia los bugs explotables está pavimentado con bugs no explotables."
-- Mark Dowd
Rhabdomancer es un plugin headless de IDA extremadamente rápido que localiza llamadas a funciones de API potencialmente inseguras en un archivo binario. Los auditores pueden trazar hacia atrás desde estos puntos candidatos para encontrar rutas que permitan el acceso a entradas no confiables.

conf/rhabdomancer.toml.La forma más sencilla de obtener la última versión es a través de 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
Alternativamente, puedes compilar desde el código fuente:
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 si es necesario. Puedes anular la ubicación predeterminada del archivo de configuración estableciendo la variable de entorno RHABDOMANCER_CONFIG.IDADIR esté definida si tu instalación de IDA se encuentra en una ubicación no estándar.rhabdomancer <binary_file>
.i64 existente se actualizará; de lo contrario, se creará un nuevo archivo IDB..i64 resultante con IDA.View > Open subviews > Bookmarks[!NOTE] Rhabdomancer también añade comentarios en las ubicaciones de llamadas marcadas.
Solo se admite oficialmente la última versión de IDA, pero las versiones anteriores también pueden funcionar. La siguiente tabla resume la versión compatible más reciente para cada versión de IDA:
[!NOTE] Consulta la documentación de idalib-rs para obtener información adicional.
El desarrollo de este proyecto ha contado con el apoyo de las siguientes organizaciones:
normalize_name para cubrir más casos.| Versión de IDA | Última versión compatible |
|---|
| 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 |