
Assistente de pesquisa de vulnerabilidades que localiza chamadas a funções de API potencialmente inseguras em um arquivo binário.
"O caminho para bugs exploráveis é pavimentado com bugs não exploráveis."
-- Mark Dowd
Rhabdomancer é um plugin headless extremamente rápido do IDA que localiza chamadas a funções de API potencialmente inseguras em um arquivo binário. Os auditores podem fazer backtrace a partir desses pontos candidatos para encontrar caminhos que permitam acesso a entrada não confiável.

conf/rhabdomancer.toml.A maneira mais fácil de obter a versão mais recente é via 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, você pode compilar a partir do código-fonte:
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 necessário. Você pode substituir o local padrão do arquivo de configuração definindo a variável de ambiente RHABDOMANCER_CONFIG.IDADIR esteja definida se a sua instalação do IDA estiver em um local não padrão.rhabdomancer <binary_file>
.i64 existente será atualizado; caso contrário, um novo arquivo IDB será criado..i64 resultante com o IDA.View > Open subviews > Bookmarks[!NOTE] O Rhabdomancer também adiciona comentários nos locais de chamada marcados.
Apenas a versão mais recente do IDA é oficialmente suportada, mas versões mais antigas também podem funcionar. A tabela a seguir resume a última versão compatível para cada versão do IDA:
[!NOTE] Consulte a documentação do idalib-rs para obter informações adicionais.
O desenvolvimento deste projeto foi apoiado pelas seguintes organizações:
normalize_name para cobrir mais casos.| Versão do IDA | Última versão compatível |
|---|
| 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 | versão atual |