Alat untuk mengekstraksi informasi dari database IDA. idbtool tahu cara menangani basis data dari semua versi IDA sejak v2.0, baik file i64 dan idb . Anda juga dapat menggunakan idbtool untuk memulihkan informasi dari database yang tidak tertutup.
idbtool bekerja tanpa perubahan dengan IDA V7.0.
Dengan IdBtool Anda dapat mencari ribuan file .IDB dalam hitungan detik.
Lebih tepatnya: di laptop saya dibutuhkan:
Memuat file IDB sekitar 5 Gbyte di IDA, membutuhkan waktu sekitar 45 menit. Sementara IDB3.H pada dasarnya tidak membutuhkan waktu sama sekali, tidak lebih dari beberapa milidetik.
Ada dua versi alat ini:
Satu ditulis dalam python
Satu ditulis dalam C ++
Kedua repositori berisi perpustakaan yang dapat digunakan untuk membaca file .idb atau .i64 .
Penggunaan:
idbtool [options] [database file(s)]
-n atau --names akan mencantumkan semua nilai yang disebutkan dalam database.-s atau --scripts akan mencantumkan semua skrip yang disimpan dalam database.-u atau --structs akan mencantumkan semua struktur yang disimpan dalam database.-e atau --enums akan mencantumkan semua enum yang disimpan dalam database.--imports akan mencantumkan semua simbol yang diimpor dari database.--funcdirs akan mencantumkan folder fungsi yang disimpan dalam database.-i atau --info akan mencetak beberapa info umum tentang database.-d atau --pagedump dump btree Page Tree Isi.--inc , --dec daftar semua catatan dalam urutan naik / turun.-q atau --query Search Records spesifik dalam database.-m atau --limit membatasi jumlah hasil yang dikembalikan oleh -q .-id0 , -id1 hanya membuang satu bagian tertentu.--i64 , --i32 Tell IDBtool bahwa file yang ditentukan berasal dari database 64 atau 32 bit.--recover File grup dari database yang tidak dikemas.--classify meringkas penggunaan node dalam database--dump Hexdump Data Biner Asli Kueri perlu ditentukan terakhir pada Commandline.
contoh:
idbtool [database file(s)] --query "Root Node;V"
Akan mencantumkan biner sumber untuk semua database yang ditentukan pada Commandline.
Kueri adalah string dengan format berikut:
Contoh kueri:
Root Node;V -> mencetak catatan yang berisi nama biner sumber?Root Node -> mencetak catatan nama yang menunjuk ke root>Root Node -> Mencetak 10 catatan pertama dimulai dengan ID Node Root.<Root Node -> mencetak 10 catatan startng dengan catatan di rootnode..0xff000001;N -> mencetak entri nama rootnode.#1;N -> mencetak entri nama rootnode. Sebutkan node tertinggi dan catatan berikut dalam database dengan dua cara berbeda, yang pertama: mulai dari catatan pertama di bawah ffc00000 , dan daftar berikutnya. Yang kedua: Mulai dari rekaman pertama setelah ffc00000 , dan mendaftar yang sebelumnya:
--query "<#0xc00000" --limit 2 --inc -v--query ">#0xc00000" --limit 2 --dec -v Perhatikan bahwa ini harus menjadi nodeid dalam catatan $ MAX NODE .
Daftar dua catatan terakhir:
--limit 2 --dec -v Sebutkan dua catatan pertama, $ MAX LINK dan catatan $ MAX NODE :
--limit 2 --inc -vAda beberapa metode untuk mencetak semua catatan dalam database. Ini mungkin berguna jika Anda ingin menyelidiki lebih banyak internal Ida. Tetapi juga dapat berguna dalam memulihkan data dari database yang rusak.
--inc , --dec dapat digunakan untuk menyebutkan semua catatan B-tree baik di depan, atau arah mundur.-v untuk mendapatkan kunci/output nilai yang lebih cantik--id0 Menjalankan pohon halaman, bukan pohon rekaman, mencetak isi setiap halaman--pagedump linear lewati melalui file, ini juga akan mengungkapkan informasi di halaman yang dihapus. Saat IDA atau komputer Anda macet saat bekerja pada pembongkaran, dan Anda belum menyimpan database, Anda dibiarkan dengan beberapa file dengan ekstensi seperti .id0 , .id1 , .nam , dll.
File -file ini adalah database yang tidak dikemas, saya menyebutnya file naked .
Menggunakan opsi --filetype dan --i64 atau --i32 Anda dapat memeriksa file naked ini secara individual. Atau gunakan opsi --recover untuk melihatnya sebagai database lengkap bersama -sama. idbtool akan mencari tahu secara otomatis file mana yang akan menjadi bersama.
idbtool dapat mengetahui bitsize database dari file .id0 , tetapi belum (belum) dari yang lain.
File idblib.py berisi perpustakaan.
Willem Hengeveld [email protected]