Bytecodedl
Alat analisis statis deklaratif untuk datalog berbasis bytecode JVM seperti CodeQL
Mengapa bytecodedl
Nama Bytecodedl berevolusi dari CodeQL. Bytecode sesuai dengan kode dan DL sesuai dengan QL. Ini adalah alat analisis statis deklaratif, terutama untuk menebus penyesalan bahwa CodeQL tidak dapat secara langsung menganalisis bytecode.
Proyek ini memiliki dua tujuan utama:
- Tujuan pengajaran adalah untuk membantu Anda memulai dengan analisis statis. Proyek ini akan menunjukkan cara mengimplementasikan beberapa algoritma analisis statis melalui Datalog. Dibandingkan dengan analisis statis imperatif, metode ini jauh lebih sederhana. Setelah mempelajari prinsip -prinsip dasar, Anda juga dapat melakukan DIY aturannya sendiri.
- Untuk meningkatkan efisiensi penggalian, peneliti keamanan umumnya tidak bisa mendapatkan kode sumber. Dalam kebanyakan kasus, mereka hanya dapat menganalisis paket JAR, dan kemudian melihat kode yang didekompilasi melalui ide. Efisiensinya relatif rendah. Saya berharap bahwa fungsi pencarian, fungsi analisis grafik panggilan, dan fungsi analisis noda yang disediakan oleh Bytecodedl dapat meningkatkan efisiensi penggalian untuk peneliti keamanan.
Memasang
- Unduh atau Bangun Syot-Fact-Generator.jar
- Instal Souffle
- instal neo4j
Buruh pelabuhan
Anda dapat menggunakan Docker yang kami bangun seperti Docker-Compose.yml
Fitur
Penggunaan
Lihat folder Docs
Mendukung
Masalah apa yang dihadapi selama penggunaan dapat dilakukan
Tiga cara untuk memberi umpan balik kepada kami
Plugin
- IDE
- Bytecodedl helper bdlh
- Datalog Bahasa Plugin Intellij-Datalog
Pengakuan
- Berkat dua guru Li Yue dan Tan Tian dari Universitas Nanyang, yang memperkenalkan bidang analisis statis melalui kursus analisis program yang mereka tawarkan.
- Terima kasih kepada DOOP, Soot-Fact-Generator.jar disediakan.