Binabsinspector (binärer abstrakter Inspektor) ist ein statischer Analysator für automatisierte Reverse Engineering und Scan-Schwachstellen in Binärdateien, ein langfristiges Forschungsprojekt, das bei KeenLab inkubiert ist. Es basiert auf abstrakter Interpretation mit der Unterstützung von Ghidra. Es funktioniert auf Ghidras PCode anstelle von Montage. Derzeit unterstützt es Binärdateien auf X86, X64, ARMV7 und AARG64.
z3-${version}-win/bin zeigtz3-${version}-glibc-${version}/bin/*.so zu /usr/local/lib/Erstellen Sie die Erweiterung selbst. Wenn Sie eine neue Funktion entwickeln möchten, lesen Sie bitte den Entwicklungshandbuch.
gradle buildExtension unter Repository Root ausdist/${GhidraVersion}_${date}_BinAbsInspector.zip generiertSie können Binabsinspector im kopflosen Modus, GUI -Modus oder mit Docker ausführen.
$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:
| Parameter | Beschreibung |
|---|---|
[-K <kElement>] | Kset Größengrenze k |
[-callStringK <callStringMaxLen>] | Ruf Zeichenfolge Maximale Länge k |
[-Z3Timeout <timeout>] | Z3 Timeout |
[-timeout <timeout>] | Analysezeitüberschreitung |
[-entry <address>] | Eingabeadresse |
[-externalMap <file>] | Externe Funktionsmodellkonfiguration |
[-json] | Ausgabe im JSON -Format |
[-disableZ3] | Deaktivieren Sie Z3 |
[-all] | Aktivieren Sie alle Prüfer |
[-debug] | Aktivieren Sie das Debugging -Protokollausgang |
[-check "<cweNo1>[;<cweNo2>...]"] | Aktivieren Sie bestimmte Prüfer |
Mit Ghidra GUI
Window -> Script Manager und finden Sie BinAbsInspector.javaBinAbsInspector.java Eintrag, stellen Sie die Parameter im Konfigurationsfenster fest und klicken Sie auf OKMit Docker
git clone [email protected]:KeenSecurityLab/BinAbsInspector.git
cd BinAbsInspector
docker build . -t bai
docker run -v $( pwd ) :/data/workspace bai " @@<script parameters> " -import < file >Bisher unterstützt Binabsinspector die folgenden Prüfer:
Die Struktur dieses Projekts lautet wie folgt. Weitere Informationen finden Sie unter technischen Details oder im Artikel Chinese -Versionsartikel.
├── main
│ ├── java
│ │ └── com
│ │ └── bai
│ │ ├── checkers checker implementatiom
│ │ ├── env
│ │ │ ├── funcs function modeling
│ │ │ │ ├── externalfuncs external function modeling
│ │ │ │ └── stdfuncs cpp std modeling
│ │ │ └── region memory modeling
│ │ ├── solver analyze core and grpah module
│ │ └── util utilities
│ └── resources
└── test
Sie können den Javadoc auch mit gradle javadoc bauen. Die API -Dokumentation wird in ./build/docs/javadoc generiert.
Wir beschäftigen Ghidra als Fundament und nutzen häufig Jimmable -Sammlungen, um eine bessere Leistung zu erzielen.
Hier möchten wir ihnen für ihre große Hilfe danken!