IDA pro接入千问大模型
概述
本文主要介绍如何在IDA pro中使用WpechatGPT插件和qwen2.5-coder大模型,辅助进行逆向分析。
WPeChatGPT插件
WPeChatGPT (https://github.com/WPeace-HcH/WPeChatGPT)是一款基于 ChatGPT 模型的 IDA 反汇编工具插件,旨在辅助逆向工程师快速分析二进制文件。其核心功能与特点如下:
核心功能
- 智能函数分析
通过自然语言描述函数的使用环境、预期目的及具体功能,帮助用户快速理解代码逻辑。例如,可识别加密函数或解密函数的用途,并生成伪代码。 - 变量重命名
自动为反编译后的函数变量赋予更直观的命名,提升代码可读性。例如,将v3
重命名为socket_fd
,便于后续分析。 - 漏洞检测与 EXP 生成
支持在当前函数中查找潜在漏洞(如缓冲区溢出),并尝试用 Python 生成对应的漏洞利用代码(EXP)。 - Python 代码还原
针对小型函数(如异或解密),可生成等效的 Python3 代码片段,加速逆向工程中的算法复现。 - 自动化批量分析(Auto-WPeGPT)
全自动分析二进制文件,输出包括可疑字符串、函数调用树、主函数结构等信息的报告。
qwen2.5-coder大模型
Qwen2.5-Coder 是阿里云推出的开源代码大模型系列,在代码相关任务中展现了行业领先的能力。可用于代码生成与补全、代码修复与高度等场景,用于进行阅读汇编代码和伪代码是最合适不过了,最主要的是他不需要科学上网,对于国内用户来说是非常友好的。这个模型有从1.5 B到32B不同大小的,模型可以适配不同的场景,
如果您对代码相关的任务或在复杂场景下的任务效果有要求,建议选择qwen2.5-coder-32b-instruct,这些模型在代码生成、代码修复、代码推理能力上具备业界领先水平。如果您对模型推理速度有要求,如在补全场景下使用,建议选择qwen-coder-turbo或qwen2.5-coder-7b-instruct,这些模型响应较快,且仍然有较好的代码能力。
这个模型目前已经完全开源,在hugging face上可以下载模型文件,离线部署。
实操环节
-
下载Auto-WPeGPT插件
我们这里使用的环境是IDA Pro 8.3,将WPeChatGPT插件代码下载解压后,如下图所示,将Auto-WPeGPT_WPeace目录和WPeChatGPT.py拷贝到IDA pro的插件目录下(如我的插件目录为
D:\04_tools\IDA_Pro_v8.3_Portable\plugins
)。
-
注册阿里云百炼账号,领取apikey
阿里云百炼平台提供了丰富多样的模型选择,它集成了通义系列大模型和第三方大模型,涵盖文本、图像、音视频等不同模态。目前注册新用户,还赠送100万免费token。关于如何申请apikey就不用多说了。
-
安装python依赖
IDA pro8.3默认使用的python环境是python3.11,需要安装两个依赖库openai和anytree,切换到python11的目录下,使用pip进行安装。
D:\04_tools\IDA_Pro_v8.3_Portable\python311>python -m pip install anytree D:\04_tools\IDA_Pro_v8.3_Portable\python311>python -m pip install openai
-
接入qwen2.5-coder
修改插件代码,接入qwen2.5-coder模型,这个插件默认使用的是chatgpt,也支持deepseek,只需要进行稍微的修改就可以接入qwen2.5-coder,如下图所示,修改model_api_key、proxy_address、MODEL、PLUGIN_NAME、PROD_NAME这几个全局变量即可。
-
使用AI进行逆向分析
使用IDA打开一个恶意代码,在一段C伪代码函数名右键可以看到WPeChat-qwen的菜单项,有5项功能,分别为函数分析、重命名函数变量、python还原此函数、二进行函数查找和尝试生成exp,用了一下,效果还不错,小伙伴可以用起来。
参考资料
- 通义千问Coder模型能力_大模型服务平台百炼(Model Studio)-阿里云帮助中心
- WPeChatGPT/README.ZH_CN.md at main · WPeace-HcH/WPeChatGPT · GitHub