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
rhabdomancer — Assistent für Schwachstellenforschung, der Aufrufe potenziell unsicherer API-Funktionen in einer Binärdatei lokalisiert. | Kitploit
Tools/GitHubGitHub/0xdea/rhabdomancer
Statische AnalyseSchwachstellenanalyseReverse EngineeringBinäranalyse
GitHub0xdea/rhabdomancer

rhabdomancer

Assistent für Schwachstellenforschung, der Aufrufe potenziell unsicherer API-Funktionen in einer Binärdatei lokalisiert.

Repository anzeigen
1311529vor 1 TagVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Webseite
Teilen

rhabdomancer

build doc

"Der Weg zu ausnutzbaren Bugs ist mit nicht ausnutzbaren Bugs gepflastert."

-- Mark Dowd

Rhabdomancer ist ein blitzschnelles IDA-Headless-Plugin, das Aufrufe potenziell unsicherer API-Funktionen in einer Binärdatei lokalisiert. Auditoren können von diesen Kandidatenpunkten aus zurückverfolgen, um Pfade zu finden, die Zugriff auf nicht vertrauenswürdige Eingaben ermöglichen.

Funktionen

  • Blitzschnelle, headless Benutzererfahrung dank IDA 9.x und der idalib-rs Rust-Bindings.
  • Unterstützung für C/C++-Binärziele, die für jede von IDA implementierte Architektur kompiliert wurden.
  • Fundstellen von Aufrufen schlechter API-Funktionen werden auf stdout ausgegeben und in der IDB markiert.
    • Aufrufstellen in Bibliothekscode, der von IDA erkannt wird (z. B. eine statisch gelinkte Runtime, die durch FLIRT-Signaturen erkannt wurde), werden mit (lib) gekennzeichnet.
    • Aufrufe über Stubs (z. B. die .plt-Einträge von ELF-Binärdateien oder die Import-Stubs von PE- und Mach-O-Binärdateien, die als Thunks aufgeführt sind) werden bis zu ihren Aufrufern zurückverfolgt.
    • In ELF-Binärdateien wird eine Funktion bewusst zweimal mit denselben Aufrufstellen aufgeführt: einmal als ihr .plt-Stub (als Thunk markiert) und einmal als ihr Import. Jede Aufrufstelle wird in der IDB nur einmal markiert.
  • Bekannte schlechte API-Funktionen sind in Stufen der Schlechtigkeit gruppiert, um die Priorisierung der Audit-Arbeit zu erleichtern.
    • [BAD 0] Hohe Priorität – Funktionen, die allgemein als unsicher gelten.
    • [BAD 1] Mittlere Priorität – Interessante Funktionen, die auf unsichere Anwendungsfälle geprüft werden sollten.
    • [BAD 2] Niedrige Priorität – Codepfade, die diese Funktionen betreffen, sollten sorgfältig geprüft werden.
  • Die Liste der bekannten schlechten API-Funktionen ist eingebaut und kann einfach mit einer Konfigurationsdatei auf Basis von conf/rhabdomancer.toml angepasst werden.
  • Funktionsnamen werden ohne folgende Dekorationen abgeglichen: führende Punkte und Unterstriche (z. B. _strcpy), die Präfixe von Bibliotheks-Aliassen (z. B. __o_malloc in der Universal CRT, __libc_system und __GI___snprintf in glibc) und, nur für Stubs und solche Aliase, das numerische Suffix, das IDA an bereits verwendete Namen anhängt (z. B. memset_0).

[!NOTE] Fortifizierte Funktionen (z. B. __strcpy_chk, das anstelle von strcpy verwendet wird, wenn mit _FORTIFY_SOURCE gebaut wird) werden bewusst nicht abgeglichen, da sie die geprüften Varianten der aufgeführten Funktionen sind. Um auch ihre Aufrufe zu markieren, füge sie explizit zu einer benutzerdefinierten Konfiguration hinzu (z. B. "__strcpy_chk" mit derselben Priorität wie strcpy).

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/Rhabdomancer.java
  • https://docs.hex-rays.com/release-notes/9_0#headless-processing-with-idalib
  • https://github.com/idalib-rs/idalib
  • https://books.google.it/books/about/The_Art_of_Software_Security_Assessment.html

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 rhabdomancer --locked
    
    Unter Windows verwenden Sie stattdessen die folgenden Befehle:
    $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 --locked
    

Kompilieren

Alternativ können Sie aus dem Quellcode bauen:

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

Verwendung

  1. Stellen Sie sicher, dass IDA ordnungsgemäß mit einer gültigen Lizenz konfiguriert ist.
  2. Passen Sie optional die Liste der bekannten bösartigen API-Funktionen an: Kopieren Sie conf/rhabdomancer.toml (wählen Sie das Tag, das Ihrer installierten Version entspricht, für deren exakte integrierte Liste), bearbeiten Sie die Kopie und setzen Sie die Umgebungsvariable RHABDOMANCER_CONFIG auf deren Pfad. Die Datei muss die Arrays high, medium und low definieren und keine anderen Schlüssel. Andernfalls wird die integrierte Liste verwendet, die zur Build-Zeit aus conf/rhabdomancer.toml in die Binärdatei eingebettet wird (das Bearbeiten dieser Datei erfordert einen Neubuild).
  3. Stellen Sie sicher, dass die Umgebungsvariable IDADIR gesetzt ist, falls sich Ihre IDA-Installation an einem nicht standardmäßigen Ort befindet.
  4. Führen Sie es wie folgt aus:
    rhabdomancer <binary_file>
    
    Eine vorhandene .i64-IDB-Datei wird aktualisiert; andernfalls wird eine neue IDB-Datei erstellt.
  5. Öffnen Sie die resultierende .i64-IDB-Datei mit IDA.
  6. Wählen Sie View > Open subviews > Bookmarks
  7. Genießen Sie Ihre Ergebnisse, die bequem in einem IDA-Fenster gesammelt werden.

[!NOTE] Rhabdomancer fügt außerdem Kommentare an markierten Aufrufstellen hinzu. Sowohl Lesezeichen als auch Kommentare werden mit [BAD n] <function_name> gekennzeichnet, wobei n die Prioritätsstufe ist (0 = hoch, 1 = mittel, 2 = niedrig), damit Skripte IDBs danach durchsuchen können. Dieses Format ist über Releases hinweg stabil.

Kompatibilität

Offiziell unterstützt wird nur die neueste IDA-Version, aber ältere Versionen können ebenfalls funktionieren. Die folgende Tabelle fasst die neueste kompatible Version für jede IDA-Version zusammen:

Tool herunterladen