Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BinAbsInspector — Statischer Binär-Schwachstellenscanner, der abstrakte Interpretation auf Ghidra Pcode verwendet. Erkennt CWE-Klassen wie Pufferüberläufe, Use-After-Free und Befehlsinjektion mittels symbolischer Ausführung mit Z3. | Kitploit
Tools/GitHubGitHub/keensecuritylab/binabsinspector
Statische AnalyseSchwachstellenscannerReverse EngineeringFuzzingBinäranalyse
GitHubkeensecuritylab/binabsinspector

BinAbsInspector

Statischer Binär-Schwachstellenscanner, der abstrakte Interpretation auf Ghidra Pcode verwendet. Erkennt CWE-Klassen wie Pufferüberläufe, Use-After-Free und Befehlsinjektion mittels symbolischer Ausführung mit Z3.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
1.7k24514vor 2 JahrenVon Kitploit geprüft
Teilen

Was ist BinAbsInspector?

BinAbsInspector (Binary Abstract Inspector) ist ein statischer Analysewerkzeug für automatisiertes Reverse Engineering und die Suche nach Schwachstellen in Binärdateien. Es handelt sich um ein langfristiges Forschungsprojekt, das bei Keenlab beheimatet ist. Es basiert auf abstrakter Interpretation mit Unterstützung von Ghidra. Es arbeitet mit Ghidras Pcode anstelle von Assembler. Derzeit werden Binärdateien auf x86, x64, armv7 und aarch64 unterstützt.

Installation

  • Installieren Sie Ghidra gemäß der Ghidra-Dokumentation
  • Installieren Sie Z3 (getestete Version: 4.8.15)
  • Beachten Sie, dass die Z3-Bibliothek im Allgemeinen aus zwei Teilen besteht: einem Java-Paket und einer nativen Bibliothek. Das Java-Paket ist bereits im Verzeichnis "/lib" enthalten, aber wir empfehlen, es durch Ihr eigenes Java-Paket zu ersetzen, um die Versionskompatibilität zu gewährleisten.
    • Für Windows laden Sie ein vorgefertigtes Paket von hier herunter, entpacken Sie die Zip-Datei und fügen Sie eine PATH-Umgebungsvariable hinzu, die auf z3-${version}-win/bin verweist
    • Für Linux wird die Installation mit einem Paketmanager NICHT empfohlen, es gibt zwei Optionen:
      1. Sie können ein geeignetes vorgefertigtes Paket von hier herunterladen, die Zip-Datei entpacken und z3-${version}-glibc-${version}/bin/*.so nach kopieren
/usr/local/lib/
  • oder Sie können z3 gemäß Building Z3 using make and GCC/Clang erstellen und installieren
  • Für macOS ist es ähnlich wie bei Linux.
  • Laden Sie die Erweiterungs-Zip-Datei von der Release-Seite herunter
  • Installieren Sie die Erweiterung gemäß den Ghidra-Erweiterungshinweisen
  • Erstellung

    Erstellen Sie die Erweiterung selbst, wenn Sie eine neue Funktion entwickeln möchten. Weitere Informationen finden Sie im Entwicklungsleitfaden.

    • Installieren Sie Ghidra und Z3
    • Installieren Sie Gradle 7.x (getestete Version: 7.4)
    • Klonen Sie das Repository
    • Führen Sie gradle buildExtension im Repository-Stammverzeichnis aus
    • Die Erweiterung wird unter dist/${GhidraVersion}_${date}_BinAbsInspector.zip erstellt

    Verwendung

    Sie können BinAbsInspector im Headless-Modus, GUI-Modus oder mit Docker ausführen.

    • Mit Ghidra Headless-Modus.
    root@kitploit:~
    $GHIDRA_INSTALL_DIR/support/analyzeHeadless <projectPath> <projectName> -import <file> -postScript BinAbsInspector "@@<scriptParams>"
    

    <projectPath> -- Ghidra-Projektpfad.
    <projectName> -- Ghidra-Projektname.
    <scriptParams> -- Das Argument für unseren Analysator, bietet folgende Optionen:

    ParameterBeschreibung
    [-K <kElement>]KSet-Größenlimit K
    [-callStringK <callStringMaxLen>]Maximale Länge der Call-Strings K
    [-Z3Timeout <timeout>]Z3-Timeout
    [-timeout <timeout>]Analyse-Timeout
    [-entry <address>]Einsprungadresse
    [-externalMap <file>]Konfiguration des externen Funktionsmodells
    [-json]Ausgabe im JSON-Format
    [-disableZ3]Z3 deaktivieren
    [-all]Alle Prüfer aktivieren
    [-debug]Debug-Logging-Ausgabe aktivieren
    [-check "<cweNo1>[;<cweNo2>...]"]Bestimmte Prüfer aktivieren
    • Mit Ghidra GUI

      1. Führen Sie Ghidra aus und importieren Sie die Ziel-Binärdatei in ein Projekt
      2. Analysieren Sie die Binärdatei mit den Standardeinstellungen
      3. Wenn die Analyse abgeschlossen ist, öffnen Sie Window -> Script Manager und suchen Sie BinAbsInspector.java
      4. Doppelklicken Sie auf den Eintrag BinAbsInspector.java, legen Sie die Parameter im Konfigurationsfenster fest und klicken Sie auf OK
      5. Wenn die Analyse abgeschlossen ist, sehen Sie die CWE-Berichte im Konsolenfenster; durch Doppelklick auf die Adressen aus dem Bericht können Sie zur entsprechenden Adresse springen
    • Mit Docker

    root@kitploit:~
    git clone [email protected]:KeenSecurityLab/BinAbsInspector.git
    cd BinAbsInspector
    docker build . -t bai
    docker run -v $(pwd):/data/workspace bai "@@<script parameters>" -import <file>
    

    Implementierte Prüfer

    Bislang unterstützt BinAbsInspector folgende Prüfer:

    • CWE78 (OS Command Injection)
    • CWE119 (Buffer Overflow (allgemeiner Fall))
    • CWE125 (Buffer Overflow (Out-of-bounds Read))
    • CWE134 (Use of Externally-Controlled Format string)
    • CWE190 (Integer overflow or wraparound)
    • CWE367 (Time-of-check Time-of-use (TOCTOU))
    • CWE415 (Double free)
    • CWE416 (Use After Free)
    • CWE426 (Untrusted Search Path)
    • CWE467 (Use of sizeof() on a pointer type)
    • CWE476 (NULL Pointer Dereference)
    • CWE676 (Use of Potentially Dangerous Function)
    • CWE787 (Buffer Overflow (Out-of-bounds Write))

    Projektstruktur

    Die Struktur dieses Projekts ist wie folgt. Weitere Informationen finden Sie in den technischen Details oder im chinesischsprachigen Artikel.

    root@kitploit:~
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── bai
    │   │           ├── checkers                       Implementierung der Prüfer
    │   │           ├── env
    │   │           │   ├── funcs                      Funktionsmodellierung
    │   │           │   │   ├── externalfuncs          Modellierung externer Funktionen
    │   │           │   │   └── stdfuncs               C++-Std-Modellierung
    │   │           │   └── region                     Speichermodellierung
    │   │           ├── solver                         Analyse-Kern und Graph-Modul
    │   │           └── util                           Hilfsprogramme
    │   └── resources
    └── test
    

    Sie können auch das Javadoc mit gradle javadoc erstellen; die API-Dokumentation wird in ./build/docs/javadoc generiert.

    Danksagung

    Wir verwenden Ghidra als unsere Grundlage und nutzen häufig JImmutable Collections für eine bessere Leistung.
    An dieser Stelle möchten wir ihnen für ihre großartige Hilfe danken!

    Tool herunterladen