
Lucid adalah plugin IDA Pro yang berorientasi pada pengembang untuk menjelajahi mikrokode hex-rays. Ini dirancang untuk memberikan pengalaman interaktif yang mulus dan mulus untuk mempelajari transformasi mikrokode dalam pipa dekompiler.
Plugin ini diberi label hanya sebagai sumber daya prototipe & kode untuk masyarakat. Harap dicatat bahwa ini adalah alat bantu pengembangan, bukan alat rekayasa terbalik tujuan umum.
Terima kasih khusus kepada GENMC / @Pat0is et al. untuk inspirasi.
Lucid adalah plugin cross-platform (Windows, MacOS, Linux) Python 2/3. Dibutuhkan nol dependensi pihak ketiga, membuat kode baik portabel dan mudah diinstal.
Dari konsol Python Disassembler Anda, jalankan perintah berikut untuk menemukan direktori pluginnya:
os.path.join(idaapi.get_user_idadir(), "plugins") Salin isi repositori /plugins/ folder ini ke direktori yang terdaftar.
Restart disassembler Anda.
Plugin ini hanya didukung untuk IDA 7.5 dan lebih baru.
Lucid akan secara otomatis memuat untuk arsitektur apa pun dengan Hex-Rays Decompiler yang hadir. Cukup klik kanan di mana saja di jendela pseudocode dan pilih View microcode untuk membuka Microcode Explorer yang jelas.

Secara default, Microcode Explorer akan menyinkronkan dengan jendela pseudocode hex-rays aktif.
Lucid membuatnya mudah untuk melacak instruksi mikro melalui seluruh pipa dekompiler. Cukup pilih microinstruction, dan gulir (atau klik ... jika Anda harus) melalui daftar lapisan kematangan mikrokode.

Tonton sebagai penjelajah tetap fokus pada instruksi yang Anda pilih, sementara lanskap mikrokode di sekitarnya meleleh. Pada dasarnya itu sihir.
Penelusuran kursor dapat beroperasi pada tingkat sub-operasional / sub-instruksi. Menempatkan kursor Anda di berbagai bagian instruksi mikro yang sama dapat melacak sub-komponen kembali ke asal masing-masing.

Jika instruksi di alamat yang dilacak dioptimalkan, Lucid akan berusaha menjaga kursor Anda dalam konteks perkiraan yang sama. Ini akan mengubah warna kursor dari hijau ke merah untuk menunjukkan hilangnya presisi.
Ketika mikrokode hex-ray meningkat dalam kematangan, pipa dekompilasi dimulai untuk menyarangkan mikrokode sebagai sub-instruksi dan sub-operasi yang membentuk struktur berbasis pohon.

Anda dapat melihat pohon -pohon ini dengan mengklik kanan sebuah instruksi dan memilih View subtree .
Karena ini adalah rilis awal, mungkin akan ada sejumlah keanehan dan bug kecil. Berikut adalah beberapa masalah yang diketahui pada saat rilis:
Jika Anda mengalami kerusakan atau perilaku buruk, silakan ajukan masalah.
Waktu dan motivasi memungkinkan, pekerjaan di masa depan mungkin termasuk:
Saya menyambut kontribusi eksternal, masalah, dan permintaan fitur. Harap buat permintaan tarik apa pun ke cabang develop repositori ini jika Anda ingin mereka dipertimbangkan untuk rilis di masa depan.