Ghidra + IDA tidak bisa mendeteksi string tapi Radare2 bisa
Saya baru dalam rekayasa balik, dan saya sudah mencoba Ghidra, IDA (Freeware) dan Radare2 dengan CrackMe sederhana, masalahnya adalah, Ghidra dan IDA tidak dapat mendeteksi string sementara Radare2 (Menggunakan GUI Cutter) dapat mengetahui namanya. Saya menggunakan analisis default untuk semua 3. Apakah ada sesuatu yang saya lewatkan? karena bahkan perintah 'string' sebenarnya dapat menemukan string yang saya cari.
Ghidra:
IDA:
Radare2 (Pemotong):
Jawaban
Saya tidak tahu persis panjang stringnya. Namun, beberapa hal yang perlu diperhatikan di sini adalah sebagai berikut:
- Ghidra dan IDA memiliki batas minimum pada ukuran string untuk memulihkan jenis yang benar (ghidra memiliki batas - atau batas bawah 5).
- Ini diperlukan untuk menghindari kesalahan positif atau tipe yang bertentangan. Dan pulihkan tipe yang benar tanpa menandai pointer sebagai string. Lihat gambar ini untuk referensi Anda. Dibuat menggunakan analisis otomatis Ghidra.
Di Ghidra Anda dapat mengubah batas ini (minimal 4) di bagian analisis.
Strings
perintah mengeluarkan karakter yang dapat dicetak dengan ukuran minimum 4 (ditambah lagi tidak menggunakan algoritma pemulihan tipe canggih seperti ghidra atau Ida). Saya yakin Anda memiliki string dengan panjang kurang dari 5 dan tebakan saya adalah harus tepat 4.- string biasanya didefinisikan di
.rodata
bagian. Jika Anda mengklik dua kali pada DAT_xxxx, Anda akan dibawa ke lokasi tempat string tersebut ditentukan. Di sana, Anda akan melihat byte berurutan dikelompokkan bersama oleh Ghidra atau IDA (seperti yang ditunjukkan pada gambar-1). Tapi, jenisnya tidak diselesaikan sebagai "string". - Di Ghidra cara cepat untuk memperbaikinya dengan mengubah tipe data label DAT_xxxx: Klik kanan -> Data -> Pilih Tipe Data -> pilih string
Referensi:
- Lihat pertanyaan saya di sini - https://github.com/NationalSecurityAgency/ghidra/issues/2274
- string manual - https://linux.die.net/man/1/strings
- ida pro - Bagaimana saya bisa membuat IDA melihat referensi string?