Framework Analisis Biner Statis Pharos adalah proyek Institut Teknik Perangkat Lunak di Universitas Carnegie Mellon. Kerangka kerja ini dirancang untuk memfasilitasi analisis otomatis program biner. Ini menggunakan infrastruktur kompiler mawar yang dikembangkan oleh Lawrence Livermore National Laboratory untuk pembongkaran, analisis aliran kontrol, semantik instruksi, dan banyak lagi. Perangkat lunak ini dirilis di bawah lisensi BSD.
Distribusi saat ini adalah pembaruan substansial untuk versi sebelumnya, dan menambahkan berbagai fitur termasuk peningkatan alat ooAnalyzer, kode analisis jalur eksperimental, peningkatan partisi, multi-threading, dan banyak fitur kecil lainnya.
The Pharos Framework adalah proyek penelitian, dan kode tersebut sedang mengalami pengembangan aktif. Tidak ada jaminan kebugaran untuk tujuan apa pun yang disediakan. Sementara rilis ini memberikan instruksi build, tes unit, dan beberapa dokumentasi, masih banyak pekerjaan yang harus dilakukan. Kami telah menguji beberapa konfigurasi build terpilih, tetapi kami belum secara aktif menguji portabilitas kode sumber. Lihat instruksi instalasi untuk lebih jelasnya.
Karena tujuan utama untuk merilis kode ini adalah untuk memberikan transparansi ke dalam penelitian kami dan merangsang percakapan dengan peneliti analisis statis biner lainnya, jangan ragu untuk menghubungi Cory Cohen [email protected] dengan pertanyaan yang mungkin Anda miliki tentang pekerjaan ini. Saya mungkin tidak dapat merespons secara tepat waktu, tetapi saya akan melakukan yang terbaik.
Apianalyzer adalah alat untuk menemukan urutan panggilan API dengan data yang ditentukan dan hubungan kontrol. Kemampuan ini dimaksudkan untuk digunakan untuk mendeteksi paradigma interaksi sistem operasi umum seperti membuka file, menulis untuk itu, dan menutupnya.
Ooanalyzer adalah alat untuk analisis dan pemulihan konstruksi berorientasi objek. Alat ini adalah subjek dari makalah berjudul "Menggunakan Pemrograman Logika Untuk Memulihkan Kelas C ++ dan Metode Dari Eksekusi yang Dikompilasi" yang diterbitkan pada Konferensi ACM tentang Keamanan Komputer dan Komunikasi pada tahun 2018. Alat ini mengidentifikasi anggota objek dan metode dengan melacak pointer objek antara fungsi dalam program. Implementasi sebelumnya dari alat ini dinamai "objdigger", tetapi itu berganti nama untuk mencerminkan desain ulang substansial menggunakan aturan prolog untuk memulihkan atribut objek. Versi saat ini dari alat ini hanya mendukung analisis executable X86 32-bit yang dikompilasi oleh Microsoft Visual C ++. Untuk instruksi yang lebih terperinci tentang cara menjalankan ooanalyzer pada eksekutif yang sangat besar, lihat catatan ini.
Distribusi Pharos yang digunakan untuk menyertakan plugin yang mengimpor informasi OO yang diekspor oleh Ooanalayzer ke dalam set alat teknik terbalik GHIDRA. Untuk mendapatkan fungsionalitas itu sekarang dan di masa depan, instal plugin Kaiju Ghidra, yang mencakup fungsionalitas yang disediakan oleh plugin Ooanalayzer.
Callanalyzer adalah alat untuk melaporkan parameter statis ke panggilan API dalam program biner. Ini sebagian besar merupakan demonstrasi konvensi panggilan kami saat ini, analisis parameter, dan kemampuan deteksi tipe, meskipun juga memberikan analisis kode yang berguna dalam suatu program.
FN2YARA adalah alat untuk menghasilkan tanda tangan Yara untuk fungsi pencocokan dalam program yang dapat dieksekusi. Program yang memiliki sejumlah fungsi yang signifikan cenderung memiliki perilaku yang sama.
FN2Hash adalah alat untuk menghasilkan berbagai hash dan properti deskriptif lainnya untuk fungsi dalam program yang dapat dieksekusi. Seperti fn2yara dapat digunakan untuk mendukung analisis kesamaan biner, atau memberikan fitur untuk algoritma pembelajaran mesin.
Dumpmasm adalah alat untuk membuang daftar pembongkaran dari yang dapat dieksekusi menggunakan kerangka pharos dengan gaya yang sama dengan alat lainnya. Ini belum dipertahankan secara aktif, dan Anda harus mempertimbangkan untuk menggunakan RecursiveSaSaSemble standar Rose sebagai gantinya http://rosecompiler.org/rose_html_reference/rosetools.html.