前言:
在去年5月,我发布了一篇如何为ide接入IDA MCP进行逆向的文章,并附带了一个简单的案例。时至今日,令我惊喜的是,这篇初衷只是“小小尝试”的文章,至今已收获了上百次收藏。
在贴子刚发布的那段时间,断断续续有不少人在帖子下留言回复,或反馈问题、或发表意见。主要都是感叹AI的强大以及一些关于配置MCP相关的问题。大部分问题我都做了回复。随着时间的推移,AI发展的也越来越迅猛,现在的模型无论是推理能力还是速度亦或者是上下文都远比之前的强上不少。中间还出现了如skills这类技术,也能让模型对特定场景的能力得到了不少的提升,无需很专业的提示词也能做出不错的效果。
结合我这大半年的AI使用技巧,我有了一些更高效、实用的 AI逆向方式想分享给大家,他不仅仅局限于使用IDA逆向,只要是静态分析基本都能较好的胜任。
1. 全项目反编译导出+AI静态分析
这是我认为很实用且适用性很强的一种方案,基本通杀所有类型的逆向,不管你是python、c、java还是什么别的。只要是可以被反编译并导出的那就可以用这一招
核心思路:反编译程序--》导出反编译项目文件--》用AI静态分析
下面我会讲一些具体的案例来给大家展示
1.1. 二进制程序逆向
对于绝大部分二进制的程序,逆向都是使用Ida,这里我也以ida为例,展示一种不用MCP也可以借助AI逆向的方式
通过插件: https://github.com/P4nda0s/IDA-NO-MCP 导出项目,然后用ide打开分析即可
下载后把脚本放到IDA plugin目录下即可

以HTB的一道简单逆向题目Simple Encryptor(解压密码hackthebox)为例
下载后用ida打开主程序 然后用插件导出即可

导出后会有一个 export-for-ai 文件夹,我们把它和题目附件放到一起。然后用ai ide打开整个项目文件夹
然后用简单的话语即可让AI自动为我们编写出解题脚本

1.2. java、apk逆向
对于java apk的逆向也是一样的
我们用jadx打开 要反编译的apk,然后还是直接导出项目

这个apk需要输入密码才能查看,

轻松获取到解锁密码
1.3. C# dll .NET逆向
这类软件通常使用dotpeek或者dnspy进行反编译,
这里以一道HTB的列题 Bypass为例
这是一个带有混淆的c#程序,我这里使用dnspy进行反编译并导出项目

然后用AI打开导出的项目,直接要求AI进行逆向分析即可

附:dotpeek的导出方式

总结
经过以上三个例子,不难看出,核心思路就是。用合适的反编译工具,对程序进行反编译,然后用ai直接对整个反编译的项目进行静态分析。 此方法好处就在于适用范围广,不管你反编译工具是不是支持MCP,只要我可以导出,那就可以用ai做逆向分析。
当然也有一些不足之处:
- 对于大型项目比较吃力:大型的项目容易占满AI的上下文,导致AI逆向的水平严重降低,可以选择带有1m上下文的AI进行改善。
- 对于动态分析无能为力:此方法只能用于静态逆向分析。无法进行动态分析。我有用过的 x64mcp GDBmcp这类动态分析的MCP工具,搭配比较先进的模型,但效果不太理想。如果后续有好的方法再写篇文章分享出来。
- 依赖模型能力:根据我的测试,claude oups4.6 thinking 应该是表现最好的模型,其次应该是Gemini3.1pro, 所以对钱包还有有点要求的:)
此外还想说的是,合理使用AI,不要沉迷在AI一把梭的乐趣当中,不然你其实会发现你用AI干了很多事情,但实际上自己什么也没有学到。这和脚本小子没啥区别。
此外提示词也十分重要,一个合理的提示词能有效提高AI的解题效率。但我认为只有你有一定的逆向能力的时候才能写出好的逆向提示词。
您还可以为您的ai接入skills,这是一个我经常用于获取skills的网站,这里也分享出来 https://skillsmp.com/zh/search
最后,感谢您能看到这里,这篇文章也只是一个简单的技巧分享,并没有太多高大上的东西,实用就行。如果您有更好的思路或者技巧欢迎留言讨论