英語| 中文
使用OpenAI發布的GPT-3.5-Turbo模型,基於與Chatgpt相同模型的IDA插件可以幫助分析師快速分析二進製文件。
WPECHATGPT當前支持的功能包括:
WPECHATGPT插件使用OpenAI的Text-Davinci-003型號,該模型在GPT上進行了訓練。在V2.0使用OpenAI的最新GPT-3.5-Turbo型號(與Chatgpt相同)之後。
Chatgpt的分析結果僅供參考,否則我們的分析師將當場失業。 XD
| 版本 | 日期 | 評論 |
|---|---|---|
| 1.0 | 2023-02-28 | 基於Gepetto。 |
| 1.1 | 2023-03-02 | 1。刪除分析加密和解密的功能。 2。增加Python還原函數的功能。 3。修改了一些細節。 |
| 1.2 | 2023-03-03 | 1。添加了在功能中找到二進制漏洞的功能。 2。增加嘗試自動生成相應EXP的功能。 3。修改了一些細節。 (由於OpenAI服務器滯後,未測試上傳) |
| 2.0 | 2023-03-06 | 1。完成V1.2版本漏洞相關功能的測試。 2。切換到Openai發布的最新GPT-3.5-Turbo型號。 |
| 2.1 | 2023-03-07 | 修復Openai-Api的定時問題。 (請參閱有關OpenAI-API錯誤報告的部分) |
| 2.3 | 2023-04-23 | 添加自動WPEGPT v0.1以支持對二進製文件的自動分析。 (需要從此版本中添加AnyTree的軟件包,使用unignts.txt或pip安裝Anytree ) |
| 2.4 | 2023-11-10 | 1。更改了一些顯示詳細信息。 2。更新自動WPEGPT v0.2 。 |
| 2.5 | 2024-08-07 | 1。添加對其他模型的支持,您可以使用模型變量設置此功能。 @tpsnt 2。支持新版本的Python Openai軟件包。 (需要更新您的OpenAI包) |
pip install -r ./requirements.txt
WPeChatGPT.py ,將您的API鍵添加到變量OpenAi.api_key中,將變量ZH_CN更改為false。 (默認中文)WPeChatGPT.py和文件夾Auto-WPeGPT_WPeace複製到IDA的插件文件夾,最後重新啟動IDA以使用它。 ! NOTE :您需要將IDA環境設置為Python3 ,並且需要在WPECHATGPT 2.0版本之後使用最新的OpenAi Python軟件包。
支持IDA中使用任何右鍵單擊,菜單欄或快捷鍵。
熱鍵:
Function analysis = "Ctrl-Alt-G"
Rename function variables = "Ctrl-Alt-R"
Vulnerability finding = "Ctrl-Alt-E"
右鍵單擊偽代碼窗口:


如何使用:

功能分析效果顯示:

漏洞查找效果顯示:

更新歷史記錄:
| 版本 | 日期 | 評論 |
|---|---|---|
| 0.1 | 2023-04-23 | 初始版本。 |
| 0.2 | 2023-11-10 | 1。提高對有效字符串的識別。 2。改進功能呼叫樹的分析。 3。添加導入功能的識別。 |
使用方法:在菜單欄中查找自動WPEGPT,然後單擊它。輸出完成後,您可以在相應的文件夾中找到分析結果( “ WPE_+IDB名稱” )。

輸出文件夾中每個文件的含義:
GPT-Result.txt -> Auto-WPeGPT analysis results
funcTree.txt -> function call tree structure
mainFuncTree.txt -> main function tree structure
effectiveStrings.txt -> Suspicious strings in the binary
顯示結果:

測試後,V0.1版本對功能較少的文件具有更好的分析效果。如果具有大量功能的二進製文件,令牌將超過範圍。我們將嘗試在下一個版本中改進它。
從2023年3月2日起,我經常遇到API錯誤,我認為這是服務器不穩定性的問題(因為我在這裡有起伏),但是因為我遇到了相關錯誤的反饋太多,所以II首先去OpenAi去了API狀態以檢查API狀態,並發現它運行良好,因此我發現它可能沒有問題,所以我想到了問題,所以我遇到了問題,所以我遇到了問題,我遇到了問題,我遇到了問題,我遇到了問題,我遇到了問題。以下是我處理OpenAI API連接問題的方式:
首先,該插件一直在在線科學條件下運行。
pip uninstall urllib3
pip install urllib3==1.25.11
# Set your forward-proxy if necessary. (e.g. Clash = http://127.0.0.1:7890)
proxy = ""
# Set reverse-proxy URL if you need. (e.g. Azure OpenAI)
proxy_address = ""
如果您在使用插件時遇到問題或有任何疑問,請留言或給我發送電子郵件。
該項目基於Gepetto ,並受到它的啟發,您可以訪問https://github.com/justicerage/gepetto,以了解原始方法。