Volver a actualizaciones
Nuevo releaseSep 20, 2026

haruspex v0.10.0

Asistente de investigación de vulnerabilidades que extrae pseudocódigo del descompilador IDA Hex-Rays.

Compartir

haruspex

build doc

"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.

Características

  • Experiencia de usuario headless ultrarrápida gracias a IDA 9.x y a las bindings de Rust de idalib-rs.
  • Compatibilidad con binarios para cualquier arquitectura implementada por el descompilador Hex-Rays de IDA.
  • El pseudocódigo de cada función se almacena en un archivo separado en el directorio de salida para facilitar su inspección.
  • Los crates externos pueden invocar [decompile_to_file] para descompilar una función y guardar su pseudocódigo en disco.

Artículos

Ver también

Instalación

La forma más sencilla de obtener la última versión es a través de crates.io:

  1. Descarga, instala y configura IDA (ver https://hex-rays.com/ida-pro).
  2. Instala LLVM/Clang (ver https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. En Linux/macOS, instala de la siguiente manera:
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo install haruspex
    
    En Windows, en su lugar, usa los siguientes comandos:
    $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
    

Compilación

Alternativamente, puedes compilar desde el código fuente:

  1. Descarga, instala y configura IDA (ver https://hex-rays.com/ida-pro).
  2. Instala LLVM/Clang (ver https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. En Linux/macOS, compila de la siguiente manera:
    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
    
    En Windows, en su lugar, usa los siguientes comandos:
    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
    

Uso

  1. Asegúrate de que IDA esté correctamente configurado con una licencia válida.
  2. Asegúrate de que la variable de entorno IDADIR esté definida si tu instalación de IDA se encuentra en una ubicación no estándar.
  3. Ejecuta de la siguiente manera:
    haruspex <binary_file>
    
  4. Encuentra el pseudocódigo extraído de cada función descompilada en el directorio binary_file.dec:
    vim <binary_file>.dec
    code <binary_file>.dec
    

Compatibilidad

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:

Versión de IDAÚltima versión compatible
v9.0.240925v0.2.4
v9.0.241217v0.3.5
v9.1.250226v0.6.2
v9.2.250908v0.7.5
v9.3.260213v0.8.1
v9.3.260327v0.9.0
v9.3.260421v0.9.3
v9.4.260714versión actual

[!NOTE] Consulta la documentación de idalib-rs para obtener más información.

Créditos

El desarrollo de este proyecto ha contado con el apoyo de las siguientes organizaciones:

Historial de cambios

Tareas pendientes

Categorías