Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
haruspex — Assistente de pesquisa de vulnerabilidades que extrai pseudocódigo do decompilador IDA Hex-Rays. | Kitploit
Ferramentas/GitHubGitHub/0xdea/haruspex
Análise Estática de Código (SAST)Análise de VulnerabilidadesEngenharia ReversaAnálise de Binários
GitHub0xdea/haruspex

haruspex

Assistente de pesquisa de vulnerabilidades que extrai pseudocódigo do decompilador IDA Hex-Rays.

Ver Repositório
1311044há 4 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

haruspex

build doc

"Hacking is the discipline of questioning all your assumptions all of the time."

-- Dave Aitel

Haruspex é um plugin headless extremamente rápido para IDA que extrai pseudocódigo gerado pelo decompilador do IDA em um formato que deve ser adequado para ser importado em uma IDE, ou analisado por ferramentas de análise estática como Semgrep, weggli, ou oneiromancer.

Recursos

  • Experiência de usuário headless extremamente rápida, cortesia do IDA 9.x e dos bindings Rust idalib-rs.
  • Suporte a alvos binários para qualquer arquitetura implementada pelo decompilador Hex-Rays do IDA.
  • O pseudocódigo de cada função é armazenado em um arquivo separado no diretório de saída para facilitar a inspeção.
  • Definições de tipo globais e por função são extraídas para arquivos de cabeçalho junto com o pseudocódigo.
  • Crates externos podem invocar [decompile_to_file] para decompilar uma função e salvar seu pseudocódigo e definições de tipo em disco, distinguindo funções que não podem ser decompiladas de erros como uma licença Hex-Rays indisponível.

Artigos

  • https://hex-rays.com/blog/streamlining-vulnerability-research-idalib-rust-bindings
  • https://hnsecurity.it/blog/streamlining-vulnerability-research-with-ida-pro-and-rust

Veja também

  • https://github.com/0xdea/ghidra-scripts/blob/main/Haruspex.java
  • https://github.com/0xdea/semgrep-rules
  • https://github.com/0xdea/weggli-patterns
  • https://docs.hex-rays.com/release-notes/9_0#headless-processing-with-idalib
  • https://github.com/idalib-rs/idalib
  • https://github.com/xorpse/parascope
  • https://hnsecurity.it/blog/automating-binary-vulnerability-discovery-with-ghidra-and-semgrep

Instalando

A maneira mais fácil de obter a versão mais recente é via crates.io:

  1. Baixe, instale e configure o IDA (veja https://hex-rays.com/ida-pro).
  2. Instale o LLVM/Clang (veja https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. No Linux/macOS, instale da seguinte forma:
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo install haruspex --locked
    
    No Windows, em vez disso, use os seguintes 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 --locked
    

Compilando

Alternativamente, você pode compilar a partir do código-fonte:

  1. Baixe, instale e configure o IDA (veja https://hex-rays.com/ida-pro).
  2. Instale o LLVM/Clang (veja https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. No Linux/macOS, compile da seguinte forma:
    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 --locked
    
    No Windows, em vez disso, use os seguintes 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 --locked
    

Uso

  1. Certifique-se de que o IDA está configurado corretamente com uma licença válida.
  2. Certifique-se de que a variável de ambiente IDADIR está definida se sua instalação do IDA estiver em um local não padrão.
  3. Execute da seguinte forma:
    haruspex <binary_file>
    
  4. Encontre o pseudocódigo extraído e as definições de tipo no diretório de saída ao lado de <binary_file>, nomeado a partir dele com sua extensão, se houver, substituída por .dec (por exemplo, foo.exe e foo ambos produzem foo.dec, então binários que diferem apenas em sua extensão compartilham o mesmo diretório de saída):
    vim foo.dec
    code foo.dec
    

Compatibilidade

Apenas a versão mais recente do IDA é oficialmente suportada, mas versões mais antigas podem funcionar também. A tabela a seguir resume a versão compatível mais recente para cada versão do IDA:

Versão do IDAVersão compatível mais recente
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.260714versão atual
v9.4.260915versão atual

[!NOTE] Consulte a documentação do idalib-rs para informações adicionais.

Créditos

O desenvolvimento deste projeto foi apoiado pelas seguintes organizações:

  • HN Security
  • Hex-Rays através de seu Contributor Program

Changelog

  • CHANGELOG.md

TODO

  • Adicionar um teste de regressão do Semgrep CI para garantir que a porcentagem de linhas analisadas não diminua.
  • Usar a extensão .cpp em vez de .c para gerar o pseudocódigo (veja esta issue)?
  • Implementar saída serializada para facilitar a análise e o parsing automatizados.
  • Integrar com a varredura do Semgrep (veja https://github.com/0xdea/semgrep-rules).
  • Integrar com a varredura do weggli (veja https://github.com/0xdea/weggli-patterns).
  • Melhorar a saída do decompilador no estilo de HexRaysPyTools e abyss.
  • Implementar análise paralela (veja https://github.com/fugue-re/fugue-mptp).
Baixar ferramenta