第162篇:AI联动JADX + MCP + Claude实战还原深度加密混淆的 Java 程序
ABC_123有过几次处理加密混淆内存马的经验,也搞过加密混淆的java程序的逆向去看看别人的代码思路,但每一次对抗加密混淆都很烧脑,但是现在AI的MCP出来,我试了一下AI联动JADX,这里我们选取一个早期版本的 Burp Suite 作为样本进行测试,也是为了研究下Burp Suite的发包模块的实现,这个模块非常稳定,有些特定的发包只有它能实现。等 Java 关键字。公众号专注于网络安全技术

Part1 前言
大家好,我是ABC_123。前面几篇文章我讲解了XGhost机器学习分类法、卷积神经网络识别验证码、AI的MCP等,今天我们继续研究AI在解Java混淆方面的不可替代的作用。ABC_123有过几次处理加密混淆内存马的经验,也搞过加密混淆的java程序的逆向去看看别人的代码思路,但每一次对抗加密混淆都很烧脑,但是现在AI的MCP出来,我试了一下AI联动JADX,一个深度加密混淆的Java程序,被还原得让人难以置信。

Part2 技术研究过程
-
配置AI+MCP+JADX环境
https://github.com/zinja-coder/jadx-ai-mcp
打开jadx-gui 1.5最新版本,点击安装插件,载入jadx-ai-mcp-6.3.0.jar。

下载 jadx-mcp-server 压缩包并完成解压,进入项目目录后,安装 Python 所需的依赖插件。

接下来进行 Claude MCP 配置,需要在项目中生成 .mcp.json 和 settings.local.json 两个配置文件,分别用于声明 MCP 服务信息及本地运行配置。

{ "mcpServers": { "jadx-mcp-server": { "command": "python", "args": [ "D:\\jadx-mcp-server-6.3.0\jadx_mcp_server.py" ] } }}

-
开始逆向加密混淆过程
这里我们选取一个早期版本的 Burp Suite 作为样本进行测试,也是为了研究下Burp Suite的发包模块的实现,这个模块非常稳定,有些特定的发包只有它能实现。使用 JADX 打开后可以发现,目标程序的包名、类名和变量名被大量替换为 if、else、for、static、throw 等 Java 关键字。经过反编译后,这些代码在导入 IDEA 时会触发大量语法错误,既无法直接编译,也严重破坏了代码可读性,并且难以阅读理解。

接下来,我们尝试使用 JADX + MCP + Claude 的联动方案进行分析,首先给出本次实验所使用的提示词如下。

代码进行了加密混淆,类名都被替换成了关键字。

调用了JADX的重命名功能来改善代码的可读性:

已完成的重命名如下:

接下来继续对RepeaterUI这个类进行反混淆。


反混淆结果如下:


考虑到 Burp Suite 的发包功能很可能依赖底层 Socket 模块实现,接下来我们进一步提问,定位其发包模块所在位置,分析关键实现流程,并对相关代码进行反混淆还原。

到这一步,如下图所示,burpsuite的反编译结果如下:

如下所示,可以看到原本加密混淆的代码,已经被还原的可读性非常高了,令人惊叹!

Part3 总结
1. AI联动JADX和MCP可以快速还原深度加密混淆的Java代码,大幅提升可读性。
2. 欢迎大家扫码加入知识星球,一起学习进步。

知识星球分为以下几个板块:

知识星球的每一篇PDF文档、PPT文档都细心整理,配有3到9张关键截图。

知识星球的每一个工具都是精心筛选,都附带有实测评价及使用说明。

欢迎大家扫码加入知识星球,一起学习进步!


公众号专注于网络安全技术分享,包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等,每周一篇,99%原创,敬请关注。
Contact me: 0day123abc#gmail.com
OR 2332887682#qq.com
(replace # with @)
更多推荐



所有评论(0)