AI 在逆向分析中的应用
作者:微信文章有段时间没有更新公众号文章了,今天分享的是如何适用 AI 辅助逆向分析、漏洞挖掘与漏洞利用编写,最后再说一下这段时间的使用感受。
模型选择
我使用的是 Claude Code,一是因为它能帮我敲代码,之前的文章也有所展示;其次,是因为它是命令行的,相比于其它的模型,我使用起来更舒适,当然,可能其他模型也有命令行,但不重要了。个人感觉是,当前的大模型都不会太差(如Gemini、ChatGPT、QWEN3等),只要能完成基本工作就行,不奢求能够完全帮我解决所有问题。
Claude Code 还有一点需要说一下,anthropic 也将 Claude Code 在网安领域进行了发展,用它进行了 CTF 基准测试,效果还是不错的,有兴趣的小伙伴可以看一下原文章:https://red.anthropic.com/2025/ai-for-cyber-defenders/,下面是测试的结果:
逆向分析工具
这里我使用的是 https://github.com/mrexodia/ida-pro-mcp 这个项目,安装也十分简单,官方步骤就以下两步:
pip uninstall ida-pro-mcp
pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip
安装命令:
ida-pro-mcp --install
其支持的功能如下,这里只列出了一小部分,所有的功能列出来太长,这里就不一一展示了,有兴趣的小伙伴还是直接去 GitHub 上看更清楚。
核心功能
• idb_meta():获取 IDB 元数据(路径、模块、基地址、大小、哈希)。• Lookup_funcs(queries):通过地址或名称获取函数(自动检测,接受列表或逗号分隔的字符串)。• cursor_addr():获取当前光标地址。• cursor_func():获取光标处的当前函数。• int_convert(inputs):将数字转换为不同的格式(十进制、十六进制、字节、ASCII、二进制)。• list_funcs(queries):列出函数(分页、过滤)。• list_globals(queries):列出全局变量(分页、过滤)。• strings(queries):列出数据库中的字符串(分页、过滤)。• bytes():列出所有有权限的内存段。• local_types():列出数据库中定义的所有本地类型。• decompile(addrs):反编译给定地址处的函数。• disasm(addrs):反汇编函数并提供完整的详细信息(参数、堆栈帧等)。• xrefs_to(addrs):获取对地址的所有交叉引用。• xrefs_to_field(queries):获取对特定结构字段的交叉引用。• callees(addrs):获取地址处的函数调用的函数。• callers(addrs):获取调用地址处函数的函数。• Entrypoints():获取所有程序入口点。
高级分析操作
• py_eval(code):在IDA上下文中执行任意Python代码(返回带有结果/stdout/stderr的dict,支持Jupyter风格的评估)。• analyze_funcs(addrs):全面的函数分析(反编译、汇编、外部引用、被调用者、调用者、字符串、常量、基本块)。
控制流分析
• basic_blocks(addrs):获取具有后继和前驱的基本块。• find_paths(queries):查找源地址和目标地址之间的执行路径。
Claude Code 添加 ida-pro-mcp
使用以下命令即可将 IDA 和 Claude Code 串联起来:
claude mcp add --transport http ida-pro-mcp http://127.0.0.1:13337/mcp总结
由于整个环境部署起来还是很快的,这里就不放实际的演示了,主要就说一下自己这一段时间的使用和感受。
ida-pro-mcp 已经支持了很多逆向过程中所需的工具,甚至是高级用法(高级用法本人暂时也没怎么使用到),claude code 能够根据指令调用合适的 IDA 工具去进行逆向分析,结果还是很不错的。以下是我在实际中做过的,也取得了很好的实践效果:
1. claude code 连接上 IDA 后,让它帮我分析漏洞的触发路径,并形成 POC。类似:“帮我分析一下是否有到 sub_xxx 函数的漏洞,如果有,帮我编写一个 POC 代码。”,效果还是很不错的,claude code 成功帮我编写了 3 个 POC 代码并在实际环境中利用成功。2. 由于当前 ida-pro-mcp 插件是 GUI 形式的,当然它也可以通过 headless 方式运行。不过仍然未满足我的需求,我希望是针对多个文件进行批量分析,所以自己参考 GitHub 上的方式,编写了一个能够通过 headless 方式调用 IDA,同时进行会话管理。这样,每个会话都有自己的 IDA 实例,也就能一次开很多进程进行批量分析。
总体而言,这段时间的使用感受就是,AI 已经在网络安全领域取得了初步的成果,未来会发挥出更大的作用。从我的使用来看,AI 已经可以说是打破了技术壁垒,让原本很复杂漏洞挖掘、渗透测试等工作,变成了小白也可以上手的工作,只需要在对话框中输入自己的需求即可。这样,AI 会极大的减少人工。
当然,现在 AI 还没有达到完全取代人工的地步,现在存在的问题包括模型幻觉、上下文长度以及安全策略(安全策略指的是如果你问了一些敏感的问题,AI 会拒绝回答),当然,还有一点,就是 AI 如何落地,本文可以算是一个小小的落地场景,但如何实现更复杂场景下的落地?其实也不难,只要去不断的思考与行动即可。
未来已来,我们已经在时代的变革之中了,可能是因为自身处计算机行业吧,才对 AI 的快速迭代有更深刻的感触。
页:
[1]