英语| 中文
使用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,以了解原始方法。