QtreAnalyzer adalah penganalisa GHIDRA yang dirancang untuk binari mesin terbalik yang memanfaatkan kerangka kerja QT. Fungsi utamanya adalah untuk memulihkan objek spesifik QT dan informasi metode, memberikan wawasan berharga ke dalam struktur biner.
Penganalisa ini terikat pada versi Ghidra yang sedang diinstal. Saat ini diperlukan untuk membangunnya; Ekstensi yang dibangun akan disediakan di masa depan untuk versi Ghidra terbaru.
QtREAnalyzerQtREAnalyzer cd QtREAnalyzer Q tREAnalyzer$GHIDRA_DIR dengan direktori instalasi Anda). Misalnya, jika Anda memiliki jalur instalasi GHIDRA berikut C:ghidra_11.0.3_PUBLIC Anda akan menjalankan gradle -PGHIDRA_INSTALL_DIR=C:ghidra_11.0.3_PUBLIC . gradle -PGHIDRA_INSTALL_DIR= $GHIDRA_DIR File -> Install Extensions... , klik pada tanda + dan pilih QtREAnalyzerQtREAnalyzerdistghidra_*_QtREAnalyzer.zip dan klik OK. Untuk memverifikasi qtreAnalyzer diinstal dengan benar, Anda dapat membuka codebrowser dan memilih Analysis -> Auto Analyze ... A dan periksa apakah opsi QtReAnalyzer ada.

Saat ini QtreAnalyzer hanya bekerja dengan biner x32 atau x64 yang memiliki RTTI (yaitu dikompilasi dengan kompiler MSVC). Ini sangat karena qtreAnalyzer menggunakan RTTI untuk menemukan jika kelas mewarisi dari QObject. Ini mengatakan jika seseorang ingin memperluas penganalisa ini untuk bekerja dengan binari tanpa RTTI semua yang perlu dilakukan adalah memodifikasi file RttiClass.java dengan tepat.
Dalam kasus yang sangat jarang, tanda tangan yang salah akan diterapkan pada fungsi atau properti akan ditambahkan ke tipe data dalam alamat yang salah. Ini hampir tidak mungkin untuk diperbaiki karena cara QtreAnalyzer memetakan sinyal QT, slot dan tanda tangan properti ke alamat fungsi/propertie Offset yang sesuai berdasarkan heuristik. Ini seharusnya tidak menjadi batasan utama, dalam file dengan lebih dari 10.000 sinyal qt dan slot memeriksa secara manual sampel substansial saya hanya menemukan beberapa simbol berlabel keliru.
QtreAnalyzer tidak akan mungkin terjadi tanpa sumber daya luar biasa berikut: