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 打开后可以发现,目标程序的包名、类名和变量名被大量替换为 ifelseforstaticthrow 等 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 @)

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐