
Asistente de investigación de vulnerabilidades que extrae pseudocódigo del descompilador IDA Hex-Rays.
"Hacking es la disciplina de cuestionar todas tus suposiciones todo el tiempo."
-- Dave Aitel
Haruspex es un plugin headless de IDA extremadamente rápido que extrae el pseudocódigo generado por el descompilador de IDA en un formato adecuado para importarlo en un IDE, o para ser analizado por herramientas de análisis estático como Semgrep, weggli o oneiromancer.

decompile_to_file] para descompilar una función y guardar su pseudocódigo en disco.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 haruspex
$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 haruspex
Alternativamente, puedes compilar desde el código fuente:
git clone --depth 1 https://github.com/0xdea/haruspex
cd haruspex
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/haruspex
cd haruspex
$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
IDADIR esté definida si tu instalación de IDA se encuentra en una ubicación no estándar.haruspex <binary_file>
binary_file.dec:
vim <binary_file>.dec
code <binary_file>.dec
Solo se admite oficialmente la última versión de IDA, aunque las versiones anteriores también pueden funcionar. La siguiente tabla resume la última versión compatible para cada versión de IDA:
[!NOTE] Consulta la documentación de idalib-rs para obtener más información.
El desarrollo de este proyecto ha contado con el apoyo de las siguientes organizaciones:
.cpp en lugar de .c para generar el pseudocódigo (ver este issue)?| 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.5 |
| v9.3.260213 | v0.8.1 |
| v9.3.260327 | v0.9.0 |
| v9.3.260421 | v0.9.3 |
| v9.4.260714 | versión actual |