{"id":13346365,"url":"https://github.com/WPeace-HcH/WPeChatGPT","last_synced_at":"2025-03-12T08:31:03.879Z","repository":{"id":97095267,"uuid":"607527484","full_name":"WPeace-HcH/WPeChatGPT","owner":"WPeace-HcH","description":"A plugin for IDA that can help to analyze binary file, it can be based on models such as gpt-3.5 turbo, gpt-4 trained by OpenAI, the same as ChatGPT.","archived":false,"fork":false,"pushed_at":"2024-08-14T06:59:13.000Z","size":2926,"stargazers_count":994,"open_issues_count":3,"forks_count":169,"subscribers_count":23,"default_branch":"main","last_synced_at":"2024-11-09T15:43:04.552Z","etag":null,"topics":["binary-analysis","chatgpt","ida","ida-plugin","openai","reverse-engineering"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WPeace-HcH.png","metadata":{"files":{"readme":"README.ZH_CN.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-28T06:30:37.000Z","updated_at":"2024-11-07T10:27:31.000Z","dependencies_parsed_at":"2024-08-02T01:17:13.353Z","dependency_job_id":"75727575-44e8-4876-a298-4aaf7cba479e","html_url":"https://github.com/WPeace-HcH/WPeChatGPT","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WPeace-HcH%2FWPeChatGPT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WPeace-HcH%2FWPeChatGPT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WPeace-HcH%2FWPeChatGPT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WPeace-HcH%2FWPeChatGPT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WPeace-HcH","download_url":"https://codeload.github.com/WPeace-HcH/WPeChatGPT/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243184420,"owners_count":20249974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary-analysis","chatgpt","ida","ida-plugin","openai","reverse-engineering"],"created_at":"2024-07-29T20:01:19.686Z","updated_at":"2025-03-12T08:31:03.867Z","avatar_url":"https://github.com/WPeace-HcH.png","language":"Python","funding_links":[],"categories":["资源列表","Addons, extensions, plug-ins for integrating LLM into third-party applications"],"sub_categories":["项目","Other user interfaces"],"readme":"# WPeChatGPT\r\n- 基于与 ChatGPT 相同模型的**IDA 插件**，使用 OpenAI 发布的 gpt-3.5-turbo 模型，可以有助于分析师们快速分析二进制文件。\r\n\r\n- 当前 *WPeChatGPT* 支持的**功能**包括：\r\n   - 分析函数的使用环境、预期目的、函数功能。\r\n   - 重命名函数的变量。\r\n   - 尝试用 python3 对函数进行还原，此功能主要是针对较小块的函数（如一个异或解密函数）。\r\n   - 在当前函数中查找是否存在漏洞。\r\n   - 尝试用 python 对漏洞函数生成对应的 EXP。\r\n   - 利用 GPT **全自动分析二进制文件**，具体参考节 ***Auto-WPeGPT***。\r\n- *WPeChatGPT* 插件使用的是 OpenAI 基于GPT训练的 **text-davinci-003** 模型。  \r\n  *v2.0* 版本后使用 OpenAI 最新的 **gpt-3.5-turbo** 模型（The same as **ChatGPT**）。  \r\n\r\nChatGPT 的分析结果**仅供参考**，不然我们这些分析师就当场失业了。XD  \r\n## 更新历史\r\n|Version|Date|Comment|\r\n|----|----|----|\r\n|1.0|2023-02-28|Based on Gepetto.|\r\n|1.1|2023-03-02|1. 删除分析加解密的功能。\u003cbr\u003e2. 增加 python 还原函数的功能。\u003cbr\u003e3. 修改了一些细节。|\r\n|1.2|2023-03-03|1. 增加查找函数中二进制漏洞的功能。\u003cbr\u003e2. 增加尝试自动生成对应 EXP 的功能。\u003cbr\u003e3. 修改了一些细节。\u003cbr\u003e（由于OpenAI服务器卡顿原因未测试上传）|\r\n|2.0|2023-03-06|1. 完成测试 *v1.2* 版本漏洞相关功能。\u003cbr\u003e2. 改用 OpenAI 最新发布的 **gpt-3.5-turbo** 模型。|\r\n|2.1|2023-03-07|修复 OpenAI-API 的 timed out 问题。（详见节***关于 OpenAI-API 报错***）|\r\n|2.3|2023-04-23|添加 **Auto-WPeGPT v0.1**，支持对二进制文件的自动分析功能。\u003cbr\u003e（从此版本需要添加包 *anytree*，使用 *requirements.txt* 或 *pip install anytree*）|\r\n|2.4|2023-11-10|1. 修改了一些显示细节。\u003cbr\u003e2. 更新 **Auto-WPeGPT v0.2**。|\r\n|2.5|2024-08-07|1. 添加了对其他模型的支持。@tpsnt\u003cbr\u003e - 通过修改 *MODEL* 变量，可以支持其他模型\u003cbr\u003e - 设置环境变量 *OPENAI_API_BASE* 为 \"https://dashscope.aliyuncs.com/compatible-mode/v1\" ，将 *MODEL* 设置为 qwen-max、qwen-long、qwen-plus 等，可以使用灵积API\u003cbr\u003e - 将插件进行复制并修改 *PLUGIN_NAME*，可以允许多个模型同时存在\u003cbr\u003e2. 修改代码适配最新的 python openai 包。（需要使用pip更新你的openai包）|\r\n|2.6|2025-02-17|添加对DeepSeek的支持，你需要将变量*PLUGIN_NAME*设置为\"WPeChat-DeepSeek\"，同时将你的API KEY填入*model_api_key*变量。|\r\n## 安装\r\n1. 运行如下命令安装所需包。\r\n```\r\npip install -r ./requirements.txt\r\n```\r\n2. 修改脚本 `WPeChatGPT.py`，添加 API key 到变量 ***openai.api_key***。\r\n3. 复制脚本文件 `WPeChatGPT.py` 及文件夹 `Auto-WPeGPT_WPeace` 到 IDA 的 plugins 文件夹, 最后重启 IDA 后即可使用。  \r\n\r\n**`! NOTE`**：需要把 **IDA 的环境**设置为 **python3**，WPeChatGPT *2.0* 版本后需要使用**最新的 OpenAI Python 包**。\r\n## 使用方法\r\n支持在 IDA 中使用**右键、菜单栏或快捷键**任一。\r\n- 快捷键：  \r\n  `函数分析 = \"Ctrl-Alt-G\"`  \r\n  `重命名函数变量 = \"Ctrl-Alt-R\"`  \r\n  `二进制漏洞查找 = \"Ctrl-Alt-E\"`  \r\n\r\n- 伪代码窗口右键：\r\n\r\n\u0026emsp;\u0026emsp;\u003cimg src=\"https://github.com/WPeace-HcH/WPeChatGPT/blob/main/IMG/menuInPseudocode.png\" width=\"788\"/\u003e\r\n\r\n- 菜单栏：Edit $\\Rightarrow$ WPeChatGPT\r\n\r\n\u0026emsp;\u0026emsp;\u003cimg src=\"https://github.com/WPeace-HcH/WPeChatGPT/blob/main/IMG/menuInEdit.png\" width=\"360\"/\u003e\r\n\r\n## 示例\r\n使用方式：\r\n\r\n\u0026emsp;\u0026emsp;\u003cimg src=\"https://github.com/WPeace-HcH/WPeChatGPT/blob/main/IMG/useExample.gif\" width=\"790\"/\u003e\r\n\r\n函数分析效果展示：\r\n\r\n\u0026emsp;\u0026emsp;\u003cimg src=\"https://github.com/WPeace-HcH/WPeChatGPT/blob/main/IMG/resultExample.gif\" width=\"790\"/\u003e\r\n\r\n二进制漏洞查找效果展示：\r\n\r\n\u0026emsp;\u0026emsp;\u003cimg src=\"https://github.com/WPeace-HcH/WPeChatGPT/blob/main/IMG/vulnExample.gif\" width=\"790\"/\u003e\r\n\r\n## Auto-WPeGPT\r\n**更新历史：**\r\n|Version|Date|Comment|\r\n|----|----|----|\r\n|0.1|2023-04-23|初始版本。|\r\n|0.2|2023-11-10|1. 改进对有效字符串的识别。\u003cbr\u003e2. 改进对函数调用树的分析。\u003cbr\u003e3. 增添对导入函数的识别。|\r\n\r\n**使用方法：** 在菜单栏找到 Auto-WPeGPT 后点击即可，输出完成提示后可在对应文件夹（*\"WPe_+IDB名称\"*）中找到分析结果。  \r\n- 菜单栏：Edit $\\Rightarrow$ WPeChatGPT $\\Rightarrow$ Auto-WPeGPT\r\n\r\n\u0026emsp;\u0026emsp;\u003cimg src=\"https://github.com/WPeace-HcH/WPeChatGPT/blob/main/IMG/auto-wpegpt_menu.png\" width=\"788\"/\u003e\r\n\r\n输出文件夹中的每个文件含义：\r\n```\r\nGPT-Result.txt -\u003e Auto-WPeGPT 分析结果\r\nfuncTree.txt -\u003e 函数调用树形结构\r\nmainFuncTree.txt -\u003e 主函数树结构\r\neffectiveStrings.txt -\u003e 二进制文件中的可疑字符串\r\n```\r\n\r\n**效果展示：** \r\n\r\n\u0026emsp;\u0026emsp;\u003cimg src=\"https://github.com/WPeace-HcH/WPeChatGPT/blob/main/IMG/autogptExample.gif\" width=\"788\"/\u003e\r\n\r\n经过测试，v0.1 版本对函数较少的文件分析效果较好，如遇函数量大的二进制文件，会产生 tokens 超出范围的问题，在下个版本中将想办法进行改进。\r\n\r\n## 关于 OpenAI-API 报错\r\n\u0026emsp;\u0026emsp;从 2023.3.2 开始我经常遇到 API 报错，开始以为是服务器不稳定的问题（因为在我这里时好时坏），但是由于有太多反馈说都遇到了相关错误，所以我先去了 OpenAI 查看 API Status 之后发现其运行情况良好，因此发现可能并不是我所想的服务器问题，于是进行了相关问题的搜索及调试，以下是我对 OpenAI API 连接问题的处理方法：  \r\n\r\n\u0026emsp;\u0026emsp;首先前提，插件已经在**科学上网**的条件下运行。\r\n- 在科学上网的条件下，如果发现插件多次尝试都无法正常连接 API，那么需要查询一下 python 的 urllib3 版本（1.26 版本存在代理问题）。\r\n   - 可以使用如下命令对 urllib3 进行回退修复：\r\n   ```\r\n   pip uninstall urllib3\r\n   pip install urllib3==1.25.11\r\n   ```\r\n- 插件支持指定正向或反向代理：\r\n   - 把代理地址及端口信息填入 ***proxy*** 变量可实现正向代理：  \r\n   ```\r\n   # Set your forward-proxy if necessary. (e.g. Clash = http://127.0.0.1:7890)\r\n   proxy = \"\"\r\n   ```\r\n   - 把反向URL信息填入 ***proxy_address*** 变量可实现反向代理：\r\n   ```\r\n   # Set reverse-proxy URL if you need. (e.g. Azure OpenAI)\r\n   proxy_address = \"\"\r\n   ```\r\n## 联系我\r\n如果使用插件时遇到问题或有任何疑问，欢迎留言或发送邮件联系我。\r\n## 致谢\r\n受到 *Gepetto* 的启发，该项目地址为：https://github.com/JusticeRage/Gepetto 。\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWPeace-HcH%2FWPeChatGPT","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWPeace-HcH%2FWPeChatGPT","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWPeace-HcH%2FWPeChatGPT/lists"}