Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
haruspex — Assistent für Schwachstellenforschung, der Pseudocode aus dem IDA-Hex-Rays-Decompiler extrahiert. | Kitploit
Tools/GitHubGitHub/0xdea/haruspex
Statische Code-Analyse (SAST)SchwachstellenanalyseReverse EngineeringBinäranalyse
GitHub0xdea/haruspex

haruspex

Assistent für Schwachstellenforschung, der Pseudocode aus dem IDA-Hex-Rays-Decompiler extrahiert.

Repository anzeigen
1311044vor 4 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

haruspex

build doc

"Hacking ist die Disziplin, ständig alle seine Annahmen zu hinterfragen."

-- Dave Aitel

Haruspex ist ein blitzschnelles IDA-Headless-Plugin, das den vom Decompiler von IDA generierten Pseudocode in einem Format extrahiert, das sich zum Import in eine IDE oder zum Parsen durch statische Analysetools wie Semgrep, weggli oder oneiromancer eignen sollte.

Funktionen

  • Blitzschnelle, headless Benutzererfahrung dank IDA 9.x und idalib-rs Rust-Bindings.
  • Unterstützung für binäre Ziele für jede Architektur, die vom Hex-Rays Decompiler von IDA implementiert wird.
  • Der Pseudocode jeder Funktion wird zur einfachen Überprüfung in einer separaten Datei im Ausgabeverzeichnis gespeichert.
  • Globale und funktionsbezogene Typdefinitionen werden zusammen mit dem Pseudocode in Header-Dateien extrahiert.
  • Externe Crates können [decompile_to_file] aufrufen, um eine Funktion zu dekompilieren und ihren Pseudocode sowie ihre Typdefinitionen auf der Festplatte zu speichern, wobei Funktionen, die nicht dekompiliert werden können, von Fehlern wie einer nicht verfügbaren Hex-Rays-Lizenz unterschieden werden.

Artikel

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

Siehe auch

  • 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

Installation

Der einfachste Weg, die neueste Version zu erhalten, ist über crates.io:

  1. IDA herunterladen, installieren und konfigurieren (siehe https://hex-rays.com/ida-pro).
  2. LLVM/Clang installieren (siehe https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. Unter Linux/macOS wie folgt installieren:
    export IDADIR=/path/to/ida # if not set, the build script will check common locations
    cargo install haruspex --locked
    
    Unter Windows stattdessen die folgenden Befehle verwenden:
    $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
    

Kompilieren

Alternativ können Sie aus dem Quellcode bauen:

  1. IDA herunterladen, installieren und konfigurieren (siehe https://hex-rays.com/ida-pro).
  2. LLVM/Clang installieren (siehe https://rust-lang.github.io/rust-bindgen/requirements.html).
  3. Unter Linux/macOS wie folgt kompilieren:
    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
    
    Unter Windows stattdessen die folgenden Befehle verwenden:
    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
    

Verwendung

  1. Stellen Sie sicher, dass IDA ordnungsgemäß mit einer gültigen Lizenz konfiguriert ist.
  2. Stellen Sie sicher, dass die Umgebungsvariable IDADIR gesetzt ist, falls sich Ihre IDA-Installation an einem nicht standardmäßigen Ort befindet.
  3. Wie folgt ausführen:
    haruspex <binary_file>
    
  4. Den extrahierten Pseudocode und die Typdefinitionen finden Sie im Ausgabeverzeichnis neben <binary_file>, benannt nach dieser Datei, wobei deren Erweiterung, falls vorhanden, durch .dec ersetzt wird (z. B. erzeugen foo.exe und foo beide foo.dec, sodass Binärdateien, die sich nur in ihrer Erweiterung unterscheiden, dasselbe Ausgabeverzeichnis verwenden):
    vim foo.dec
    code foo.dec
    

Kompatibilität

Nur die neueste IDA-Version wird offiziell unterstützt, aber ältere Versionen funktionieren möglicherweise ebenfalls. Die folgende Tabelle fasst die neueste kompatible Version für jede IDA-Version zusammen:

IDA-VersionNeueste kompatible Version
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.260714aktuelle Version
v9.4.260915aktuelle Version

[!NOTE] Weitere Informationen finden Sie in der Dokumentation zu idalib-rs.

Danksagungen

Die Entwicklung dieses Projekts wurde von den folgenden Organisationen unterstützt:

  • HN Security
  • Hex-Rays über deren Contributor Program

Changelog

  • CHANGELOG.md

TODO

  • Einen Semgrep-CI-Regressionstest hinzufügen, um sicherzustellen, dass der Prozentsatz der geparsten Zeilen nicht abnimmt.
  • Die Erweiterung .cpp anstelle von .c verwenden, um Pseudocode auszugeben (siehe dieses Issue)?
  • Serialisierte Ausgabe implementieren, um automatisiertes Parsen und Analysieren zu erleichtern.
  • Integration mit Semgrep-Scanning (siehe https://github.com/0xdea/semgrep-rules).
  • Integration mit weggli-Scanning (siehe https://github.com/0xdea/weggli-patterns).
  • Decompiler-Ausgabe im Stil von HexRaysPyTools und abyss verbessern.
  • Parallele Analyse implementieren (siehe https://github.com/fugue-re/fugue-mptp).
Tool herunterladen