Gepetto是一個Python插件,它使用各種大型語言模型來為IDA Pro(≥7.4)的函數提供含義。它可以利用它們來解釋函數的功能,並自動重命名其變量。這是一個簡單的示例,說明了它僅在幾秒鐘內就可以提供的結果:
只需將此腳本( gepetto.py
以及gepetto/
文件夾)放入您的IDA插件文件夾( $IDAUSR/plugins
)中。默認情況下,在Windows上,這應該是%AppData%Hex-RaysIDA Proplugins
(您可能需要創建它)。
您需要將所需的軟件包添加到IDA的Python安裝中,以便腳本工作。查找通過檢查以下註冊表密鑰來查找的解釋器IDA使用: ComputerHKEY_CURRENT_USERSoftwareHex-RaysIDA
(Windows上的默認值: %LOCALAPPDATA%ProgramsPythonPython39
)。最後,使用相應的解釋器,只需運行:
[/path/to/python] -m pip install -r requirements.txt
gepetto/config.ini
的形式找到)並添加自己的API鍵。對於Openai,可以在此頁面上找到。請注意,API查詢通常不是免費的(儘管不是很昂貴),因此您需要與相應的提供商建立付款方式。
只要您正在考慮將與OpenAI類似的API公開的任何提供商,對其他型號的支持不太困難。查看gepetto/models
文件夾以獲取靈感,或者如果無法弄清楚,請打開問題。
插件正確安裝後,您應該能夠從IDA的偽代碼窗口的上下文菜單中調用它,如下屏幕截圖所示:
從編輯> Gepetto菜單中的Gepetto支持的模型之間切換:
Gepetto還提供了一個可以直接從IDA向LLM提出問題的CLI界面。確保在輸入欄中選擇Gepetto
:
可用以下熱鍵:
Ctrl
+ Alt
+ G
Ctrl
+ Alt
+ R
初步測試表明,如果您首先要求對功能進行解釋,請要求更好的名稱效果更好 - 我認為,因為該模型然後使用其自己的評論來提出更準確的建議。 AI的答復有一個隨機性。如果由於某種原因,您得到的初始響應不適合您,則可以隨時再次運行命令。
您可以通過編輯配置中的語言來更改Gepetto的語言。例如,要使用法語插件,您只需添加:
[Gepetto]
LANGUAGE = " fr_FR "
所選的語言環境必須匹配gepetto/locales
中的文件夾名稱。如果沒有所需的語言,您可以通過自己添加來為該項目做出貢獻!為所需的語言環境創建一個新文件夾(例如: gepetto/locales/de_DE/LC_MESSAGES/
),並使用更新的.po
文件打開一個新的拉請請求,您可以通過複製和編輯gepetto/locales/gepetto.pot
(替換所有用smsgstr ins msgstr
用本地化版本)來創建該請求)。