
Lucid是面向開發人員的IDA Pro插件,用於探索十六進制射線微碼。它旨在提供一種無縫的,交互式的體驗,用於研究分解器管道中的微碼轉換。
該插件僅標記為社區的原型和代碼資源。請注意,這是一種發展援助,而不是通用逆向工程工具。
特別感謝genmc / @pat0is等。為了靈感。
Lucid是一個跨平台(Windows,MacOS,Linux)Python 2/3插件。它需要零第三方依賴性,使代碼既便攜又易於安裝。
從拆卸器的Python控制台中,運行以下命令以找到其插件目錄:
os.path.join(idaapi.get_user_idadir(), "plugins")將此存儲庫/plugins/文件夾的內容複製到列出的目錄。
重新啟動您的拆卸器。
此插件僅支持IDA 7.5和更新的插件。
Lucid將自動加載任何具有十六進制射線透明劑的體系結構。只需右鍵單擊偽代碼窗口中的任何位置,然後選擇View microcode以打開Lucid Microcode Explorer。

默認情況下,Microcode Explorer將與活動的十六進制射線偽代碼窗口同步。
Lucid毫不費力地通過整個反編譯器管道追踪微型結構。只需選擇一個微觀結構,然後通過Microcode成熟層列表滾動(或單擊...(如果需要))。

觀察探險家一直專注於您選擇的指令,而周圍的微型景觀則融化。這基本上是魔術。
光標跟踪可以在子手術 /子指導級別上運行。將光標放置在同一微型結構的不同部分上可以追溯到各自的起源。

如果在跟踪地址上的說明被優化,Lucid將嘗試將光標保持在相同的上下文中。它將將光標的顏色從綠色變為紅色,以表明精確度的喪失。
隨著十六進制射線微碼的成熟度增加,分解管道開始嵌套微碼,作為構成基於樹的結構的子指導和子手術。

您可以通過右鍵單擊指令並選擇View subtree來查看這些單獨的樹。
由於這是最初的版本,因此可能會有許多小怪癖和錯誤。以下是發佈時的一些已知問題:
如果您遇到任何崩潰或不良行為,請提出問題。
時間和動機允許,未來的工作可能包括:
我歡迎外部貢獻,問題和功能請求。如果您希望將其考慮以將來發布,請向該存儲庫的develop分支提出任何拉動請求。