SBA: Kerangka Analisis Biner Statis
Apa kerangka analisis biner statis yang harus dilakukan?
- Mengurangi upaya implementasi untuk analisis individu
- Hanya 250 LOC di C ++ untuk mengimplementasikan analisis untuk memvalidasi properti fungsi.
- Sangat dapat dikonfigurasi
- Kerangka kerja berbasis interpretasi abstrak yang memungkinkan pengguna untuk mendefinisikan domain abstrak dan mengkonfigurasi evaluasi instruksi.
- Alasan yang sehat dan tepat tentang memori tumpukan
- Model memori tumpukan pada granularitas level byte, dan perkiraan suara dan efisien untuk pembaruan yang tidak tepat di tumpukan.
- Arsitektur-netral
- Analisis decouple dari spesifik arsitektur seperti bahasa perakitan dan spesifikasi ABI.
Memulai
Dependensi
sudo apt-get install g++ ocaml camlp4-extra camlp4 tar cmake make
Bangun SBA
mkdir build && cd build
cmake .. && make -j4
Aplikasi
Analisis Lompat Tabel
Untuk menganalisis objek biner ~/obj , gunakan perintah berikut:
./jump_table x86_64.auto ~/obj
Secara default, SBA membuat file sementara dan output menghasilkan /tmp/sba/ . Jalur ini dapat ditentukan menggunakan -d dan -o sebagai berikut:
./jump_table -d /tmp/sba/ -o /tmp/sba/result x86_64.auto ~/obj
Publikasi
SBA telah berkontribusi signifikan terhadap implementasi karya -karya berikut:
- Analisis tabel lompatan yang dapat diskalakan, suara, dan akurat. ISSTA 2024.
- Pembongkaran biner kompleks yang akurat tanpa menggunakan metadata kompiler. ASPLOS 2023.
- Safer: Instrumentasi biner yang efisien dan toleran terhadap kesalahan. USENIX 2023.
- Pengacakan kode biner berbutir halus praktis. ACSAC 2020.