CERT Kaiju adalah kumpulan alat analisis biner untuk Ghidra.
Ini adalah implementasi Ghidra/Java dari beberapa fitur Kerangka Analisis Biner CERT Pharos, khususnya fungsi hashing dan alat analisis malware, namun diharapkan akan mengembangkan alat dan kemampuan baru seiring berjalannya waktu.
Karena ini merupakan upaya baru, implementasi ini belum memiliki kesamaan fitur penuh dengan implementasi C++ asli berdasarkan ROSE; namun, peralihan ke Java dan Ghidra sebenarnya telah mengaktifkan beberapa fitur baru yang tidak tersedia dalam kerangka kerja asli -- terutama, peningkatan penanganan arsitektur non-x86. Karena beberapa perancangan ulang kerangka kerja dan alat yang signifikan sedang dilakukan, dan perpindahan ke Java dan Ghidra memungkinkan kemampuan yang berbeda dari implementasi C++, keputusan dibuat untuk menggunakan branding baru sehingga kebingungan antar implementasi akan lebih sedikit ketika membahas alat dan kemampuan yang berbeda.
Niat kami dalam waktu dekat adalah mempertahankan kerangka kerja Pharos asli dan juga Kaiju, secara berdampingan, karena keduanya dapat memberikan fitur dan kemampuan unik.
PERINGATAN: Sebagai prototipe, ada banyak masalah yang mungkin muncul saat mengevaluasi hash fungsi yang dibuat oleh plugin ini. Misalnya, tidak seperti implementasi Pharos, modul hashing fungsi Kaiju akan membuat hash untuk fungsi yang sangat kecil (misalnya, fungsi dengan instruksi tunggal seperti RET yang menyebabkan lebih banyak tabrakan yang tidak diinginkan). Oleh karena itu, hasil analisis mungkin berbeda antara plugin ini dan Pharos fn2hash.
Tersedia paket Kaiju yang sudah dibuat sebelumnya. Cukup unduh file ZIP yang sesuai dengan versi Ghidra Anda dan instal sesuai petunjuk di bawah. Direkomendasikan untuk melakukan instalasi melalui antarmuka grafis Ghidra, namun juga dimungkinkan untuk melakukan unzip secara manual ke direktori yang sesuai untuk menginstal.
CERT Kaiju memerlukan dependensi runtime berikut:
Z3 disediakan dalam bentuk pra-kompilasi sebagai bagian dari paket pra-bangun, atau Anda dapat membuat Z3 sendiri atau menggunakan paket distribusi Linux Anda.
Jalankan Ghidra, dan dari jendela yang terbuka, pilih dari menu: File > Install Extension
. Klik tanda tambah di bagian atas jendela ekstensi, navigasikan dan pilih file .zip di browser file dan tekan OK. Ekstensi akan dipasang dan kotak centang akan ditandai di sebelah nama ekstensi di jendela untuk memberi tahu Anda bahwa ekstensi telah dipasang dan siap.
Antarmuka akan meminta Anda untuk me-restart Ghidra untuk mulai menggunakan ekstensi. Cukup restart, dan fitur tambahan Kaiju akan tersedia untuk digunakan secara interaktif atau dalam skrip.
Beberapa fungsi mungkin memerlukan pengaktifan plugin Kaiju. Caranya, buka Code Browser lalu arahkan ke menu File > Configure
. Di jendela yang muncul, klik tautan Configure
di bawah ikon kategori "CERT Kaiju". Sebuah pop-up akan menampilkan semua plugin Kaiju yang tersedia dan dirilis untuk umum. Periksa plugin apa pun yang ingin Anda aktifkan, lalu tekan OK. Anda sekarang akan memiliki akses ke fitur plugin interaktif.
Jika plugin tidak langsung terlihat setelah diaktifkan, Anda dapat menemukan plugin tersebut di bawah menu Window
di Code Browser.
Versi eksperimental "alfa" dari alat masa depan mungkin tersedia dari kategori "Eksperimental" jika Anda ingin mengujinya. Namun plugin ini jelas bersifat eksperimental dan tidak didukung serta tidak direkomendasikan untuk penggunaan produksi. Kami menerima masukan awal!
Ekstensi Ghidra seperti Kaiju juga dapat diinstal secara manual dengan membuka ritsleting konten ekstensi ke direktori yang sesuai dengan instalasi Ghidra Anda. Untuk informasi lebih lanjut, silakan lihat Panduan Instalasi Ghidra.
Anda juga dapat membuat ekstensi Kaiju langsung dari kode sumber. Lihat file INSTALL.md
yang disertakan dalam direktori sumber Kaiju teratas.
Alat Kaiju dapat digunakan baik dalam cara grafis interaktif, atau melalui mode "tanpa kepala" yang lebih cocok untuk pekerjaan batch. Beberapa alat mungkin hanya tersedia untuk penggunaan grafis atau tanpa kepala, berdasarkan sifat alat tersebut.
Kaiju membuat antarmuka grafis interaktif (GUI) dalam Ghidra memanfaatkan arsitektur plugin Java Swing dan Ghidra.
Sebagian besar alat Kaiju sebenarnya adalah plugin Analisis yang berjalan secara otomatis ketika opsi "Analisis Otomatis" dipilih, baik saat mengimpor executable baru untuk dibongkar, atau dengan langsung memilih Analysis > Auto Analyze...
dari jendela browser kode. Anda akan melihat beberapa plugin Analisis CERT yang dipilih secara default di alat Analisis Otomatis, namun Anda dapat mengaktifkan/menonaktifkan plugin mana pun sesuai keinginan.
Namun, alat Analisis harus dijalankan sebelum berbagai alat GUI dapat berfungsi. Dalam beberapa kasus, mungkin berguna untuk menjalankan Analisis Otomatis dua kali untuk memastikan semua metadata dihasilkan untuk membuat informasi partisi dan pembongkaran yang benar, yang pada gilirannya dapat memengaruhi hasil hashing.
Penganalisis dijalankan secara otomatis selama fase analisis Ghidra dan mencakup:
Alat GUI meliputi:
Kaiju > GhiHorn
untuk mengakses alat ini dari CodeBrowser Ghidra. Anda juga dapat meluncurkan plugin dengan menekan CTRL-G
.Window > CERT Function Hash Viewer
dari menu untuk memulai dengan alat ini jika belum terlihat. Jendela baru akan muncul menampilkan tabel hash dan data lainnya. Tombol di bagian atas jendela dapat menyegarkan tabel atau mengekspor data ke file atau tanda tangan YARA. Jendela ini juga dapat dipasang ke Ghidra CodeBrowser utama agar lebih mudah digunakan bersama plugin lain. Dokumentasi penggunaan yang lebih lengkap dapat ditemukan di menu Help > Contents
Ghidra saat menggunakan alat ini.Kaiju > OOAnalyzer Importer
dari menu untuk memulai dengan alat ini. Popup dialog sederhana akan meminta Anda mencari file JSON yang ingin Anda impor. Dokumentasi penggunaan yang lebih lengkap dapat ditemukan di menu Help > Contents
Ghidra saat menggunakan alat ini.Ghidra juga mendukung mode "tanpa kepala" yang memungkinkan alat dijalankan dalam beberapa keadaan tanpa menggunakan GUI interaktif. Oleh karena itu, perintah ini dapat digunakan untuk pekerjaan skrip dan "mode batch" pada sejumlah besar file.
Alat tanpa kepala sebagian besar bergantung pada fungsionalitas GhidraScript Ghidra.
Alat tanpa kepala meliputi:
Skrip peluncuran shell sederhana bernama kaijuRun
telah disertakan untuk menjalankan perintah tanpa kepala ini untuk skenario sederhana, seperti mengeluarkan hash fungsi untuk setiap fungsi dalam satu executable. Dengan asumsi variabel GHIDRA_INSTALL_DIR
disetel, misalnya kita dapat menjalankan skrip peluncuran pada satu executable sebagai berikut:
$GHIDRA_INSTALL_DIR/Ghidra/Extensions/kaiju/kaijuRun fn2hash example.exe
Perintah ini akan menampilkan hasilnya ke file yang diberi nama secara otomatis sebagai example.exe.Hashes.csv
.
Bantuan dasar untuk skrip kaijuRun
tersedia dengan menjalankan:
$GHIDRA_INSTALL_DIR/Ghidra/Extensions/kaiju/kaijuRun --help
Silakan lihat file docs/HeadlessKaiju.md
di repositori untuk informasi lebih lanjut tentang penggunaan mode ini dan skrip peluncur kaijuRun
.
Dokumentasi dan bantuan yang lebih komprehensif tersedia dalam salah satu dari dua format.
Lihat direktori docs/
untuk dokumentasi berformat penurunan harga dan bantuan untuk semua alat dan komponen Kaiju. Dokumen-dokumen ini mudah dipelihara, diedit, dan dibaca bahkan dari baris perintah.
Alternatifnya, Anda dapat menemukan dokumentasi yang sama di sistem bantuan bawaan Ghidra. Untuk mengakses dokumen bantuan ini, dari menu Ghidra, buka Help > Contents
lalu pilih CERT Kaiju
dari navigasi pohon di sisi kiri jendela bantuan.
Harap dicatat bahwa dokumentasi Bantuan Ghidra memiliki konten yang sama persis dengan file Markdown di direktori docs/
; berkat plugin gradle dalam pohon, gradle akan secara otomatis mengurai Penurunan Harga dan mengekspor ke Ghidra HTML selama proses pembuatan. Hal ini memungkinkan pemeliharaan yang lebih sederhana (perbarui dokumen hanya di satu tempat, bukan dua) dan menjaga keduanya tetap sinkron.
Semua dokumentasi baru harus ditambahkan ke direktori docs/
.
Perangkat lunak ini dilisensikan di bawah lisensi gaya BSD yang disederhanakan oleh Software Engineering Institute di Carnegie Mellon University. Silakan temukan rincian lengkap lisensi ini, serta ketentuan lisensi dependensi yang digunakan dalam proyek ini, di file LICENSE.md
di root repositori ini.
Logo CERT Kaiju didasarkan pada karya seni yang dibuat oleh Cameron Spahn, awalnya dirilis di bawah lisensi Creative Commons Attribution-Share Alike 4.0 International.