Binabsinspector (Binary Abstrak Inspektur) adalah penganalisa statis untuk rekayasa balik otomatis dan kerentanan pemindaian di biner, yang merupakan proyek penelitian jangka panjang yang diinkubasi di Keenlab. Ini didasarkan pada interpretasi abstrak dengan dukungan dari Ghidra. Ini bekerja pada pcode Ghidra alih -alih perakitan. Saat ini mendukung binari pada x86, x64, ARMV7 dan AARCH64.
z3-${version}-win/binz3-${version}-glibc-${version}/bin/*.so ke /usr/local/lib/Bangun ekstensi sendiri, jika Anda ingin mengembangkan fitur baru, silakan merujuk ke panduan pengembangan.
gradle buildExtension di bawah Root Repositoridist/${GhidraVersion}_${date}_BinAbsInspector.zipAnda dapat menjalankan Binabsinspector dalam mode tanpa kepala, mode GUI, atau dengan Docker.
$GHIDRA_INSTALL_DIR/support/analyzeHeadless <projectPath> <projectName> -import <file> -postScript BinAbsInspector "@@<scriptParams>"
<projectPath> - Jalur Proyek Ghidra.
<projectName> - Nama proyek Ghidra.
<scriptParams> - Argumen untuk penganalisa kami, memberikan opsi berikut:
| Parameter | Keterangan |
|---|---|
[-K <kElement>] | Batas ukuran kset k |
[-callStringK <callStringMaxLen>] | Panggilan string panjang maksimum k |
[-Z3Timeout <timeout>] | Z3 Timeout |
[-timeout <timeout>] | Batas waktu analisis |
[-entry <address>] | Alamat entri |
[-externalMap <file>] | Konfigurasi model fungsi eksternal |
[-json] | Output dalam format JSON |
[-disableZ3] | Nonaktifkan Z3 |
[-all] | Aktifkan semua pemeriksa |
[-debug] | Aktifkan output log debugging |
[-check "<cweNo1>[;<cweNo2>...]"] | Aktifkan pemeriksa tertentu |
Dengan Ghidra Gui
Window -> Script Manager dan temukan BinAbsInspector.javaBinAbsInspector.java , atur parameter di jendela konfigurasi dan klik OKDengan 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 >Sejauh ini Binabsinspector mendukung pemeriksa berikut:
Struktur proyek ini adalah sebagai berikut, silakan merujuk ke detail teknis atau artikel versi Cina untuk lebih jelasnya.
├── 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
Anda juga dapat membangun Javadoc dengan gradle javadoc , dokumentasi API akan dihasilkan di ./build/docs/javadoc .
Kami mempekerjakan Ghidra sebagai fondasi kami dan sering memanfaatkan koleksi yang mudah dibantah untuk kinerja yang lebih baik.
Di sini kami ingin mengucapkan terima kasih atas bantuan mereka!