Ghidraboy: Perpanjangan SM83 / Game Boy Sharp untuk Ghidra
Sangat eksperimental! Tidak ada jaminan kompatibilitas!
Versi Ghidra yang Didukung:

Fitur
- Dukungan SM83 (CPU Core yang Digunakan di Game Boy)
- Game Boy Rom Loader:
- Dapat memuat ROM yang tidak memiliki rekening bank (<= 32kb, misalnya Tetris)
- Dapat memuat ROM yang ditinggalkan (> 32kb, misalnya Pokemon)
- Dapat memuat ROM boot greyscale (DMG/DMG0/MGB/SGB/SGB2)
- Dapat memuat ROM boot warna (CGB/CGB0)
- Blok memori berdasarkan peta memori perangkat keras
- Daerah bank menggunakan overlay (todo: cari tahu apakah ada cara yang lebih baik untuk mendukungnya)
- Perbedaan GB vs GBC ditangani (misalnya wram bank)
- Simbol untuk register perangkat keras (rentang 0xffxx)
- Perbedaan GB vs GBC ditangani (misalnya keberadaan register KEY1)
- Jenis data header cartridge Game Boy
- Jenis yang disebutkan untuk beberapa hal
Cara menginstal
- Unduh rilis Ghidraboy Prebuilt, atau bangun sendiri.
- Mulai Ghidra
- File -> Instal ekstensi
- Tekan ikon plus ("Tambahkan ekstensi")
- Pilih file zip Ghidraboy yang dibangun atau
- Restart ghidra saat diminta untuk memuat ekstensi dengan benar
Cara membangun
Sebagai prasyarat, Anda harus memiliki instalasi Ghidra di suatu tempat (instalasi yang sebenarnya, bukan salinan kode sumber Ghidra!).
export GHIDRA_INSTALL_DIR=/path/to/ghidra
./gradlew
atau
./gradlew -Pghidra.dir=/path/to/ghidra
Anda kemudian dapat menemukan ekstensi .zip yang dibangun di direktori build/distributions .
Buka pertanyaan / masalah
- Output dekompiler sulit dibaca jika instruksi tertentu digunakan (misalnya berputar, jp hl untuk jumptables)
- Default "Konvensi Panggilan ASM" mengasumsikan semua register dapat berupa input dan/atau output. Input/output sering kali ditebak secara tidak benar, jadi penyetelan manual diperlukan untuk hampir setiap fungsi
- Apakah overlay satu -satunya / solusi terbaik untuk menangani area memori bank? Saat ini di ROM yang di bankak akan berbelok ke setiap panggilan fungsi ke 0x4000-0x7fff perlu diselesaikan secara manual ke bank yang benar
Lisensi
Lisensi di bawah lisensi Apache, versi 2.0.