找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2898

积分

0

好友

390

主题
发表于 昨天 09:35 | 查看: 6| 回复: 0

编程技术主题插画

Part1 前言

最近,关于 IDA Pro MCP 的强大能力传得沸沸扬扬。作为一个对新技术始终抱有好奇心的技术人,我决定亲自上手测试一番。起初我抱着半信半疑的态度,但实际体验过后,AI 的发展速度再次刷新了我的认知。为了充分验证其能力,我特意挑选了一个颇具挑战性的目标:一个 Java 代码经过混淆、核心 so 文件也做了加密和混淆的 APK。令人惊讶的是,在 AI 的辅助下,不到一个小时就完成了核心逆向分析,甚至连加密数据包的解密函数都被自动还原并写出了 Python 代码,整个过程高效得不可思议。

Part2 技术研究过程

前期准备工作

首先,经过一系列抓包操作,成功获取到了目标 APK 的通信数据包,如下图所示。

网络请求数据包截图

随后,使用 jadx 打开该 APK,并以数据包中的参数名 rOSwHu 作为关键字进行全局搜索,成功定位到了关键的 Java 代码逻辑。

在代码编辑器中搜索关键词

通过分析可知,核心的数据处理逻辑被封装在 BeinasongTowerHelper 这个类中。

BeinasongTowerHelper类代码截图

最终,数据处理依赖于 drjepj 两个函数,它们都是通过 System.loadLibrary 加载本地 so 库来实现的。这意味着真正的加解密算法隐藏在 so 文件内部。

BeinasongTower类加载so库代码

接着,我将 APK 文件作为压缩包打开,在 lib 目录下寻找可疑的 so 文件。经过比对,libbeinasongtower.so 极有可能是包含自定义加密逻辑的文件,而其他 so 文件多为系统或第三方标准库。

APK文件中lib目录下的so文件列表

准备工作就绪,我使用 IDA Pro 9.3 打开 libbeinasongtower.so 文件。等待初始分析完成后,在 Plugins 菜单中启动 MCP Server 服务。

IDA Pro界面中开启MCP插件

随后,在 Claude 中配置好 MCP 客户端,准备联动 IDA Pro 对 so 文件进行逆向工程分析。在开始前,首先确认 IDA Pro MCP 的连接与配置状态,这一步至关重要。

Claude中检查IDA Pro MCP配置状态

构造AI提示词

确认配置无误后,开始对 APK 中的加密函数进行自动化分析。我向 AI 提供了以下提示词:“这个是apk反编译后的代码,epj是加密函数,drj是解密函数,请参考这段代码,从IDA Pro MCP中分析的so文件中,找到这两个函数的具体实现”。

向AI提供Java代码并请求分析so函数

接下来,AI 利用 IDA Pro MCP 提供的 list_funcs 等功能,快速梳理了 JNI 函数的注册情况。通过 decompile 功能,逐步分析了函数调用链,最终定位到了两个核心函数的实际实现地址。

AI通过MCP分析函数调用链找到核心函数

经过 Claude 与 IDA Pro MCP 的联动分析,仅用了几分钟就明确了两个函数的映射关系:加密函数 epj 对应的 JNI 入口是 sub_1AF34;解密函数 drj 对应的 JNI 入口是 sub_1B534

AI总结出的函数映射与加密流程分析

AI 继续深入,分析了 sub_14B5C 这个函数。通过 MCP 的 analyze_functiondecompile 功能,快速解析了其内部逻辑,包括对 sub_165D8sub_177F0 等子函数的调用,逐步揭开了 Base64 编码处理的面纱。

AI分析Base64编码函数sub_14B5C的详情

此时,我们回到 IDA Pro 界面,手动查看一下 sub_1B534 函数的伪代码。可以看到,其内部充满了各种混淆和复杂的控制流,如果依靠传统人工逆向分析方法,理解起来非常困难,通常需要借助动态调试才能厘清算法逻辑。

IDA Pro中显示的混淆后伪代码

但在 AI 的帮助下,我们无需深入理解这些令人头疼的细节。直接给出新的提示词:“使用python还原sub_1B534函数”。

AI根据指令开始用Python还原解密函数

AI 最初生成的 Python 代码未能成功解密。于是我调整策略,提供了从 APK 中抓取的真实加密数据包作为样本,并给出更明确的指引:“这个是需要解密的从apk中抓到的文本,可能需要url解码一次”。这让 AI 有了“试错”和修正的依据。

提供真实加密数据供AI调试解密脚本

经过几轮迭代,AI 最终输出了完整的分析报告、可运行的 Python 解密脚本,甚至还包括了对应的加密函数实现。

AI最终输出的完整分析报告与代码文件清单

最后,执行定稿的 Python 解密脚本,成功将 APK 通信中的加密数据包还原为结构清晰的明文 JSON 数据。

Python脚本成功解密出JSON格式的明文数据

Part3 总结

  1. 技术演进的速度超乎想象,AI 正在深刻改变传统逆向工程的工作模式,将分析师从繁琐的代码理解中解放出来,更专注于策略和逻辑。
  2. 本次实战案例完整演示了如何结合静态分析(定位 so 文件)、AI 辅助逆向(解析函数映射与 Base64/Salt 机制)以及 JNI 调用追踪,最终还原出完整的加密函数 epj 与解密函数 drj
  3. Claude + IDA Pro + MCP 的组合,能够极大提升对复杂混淆的 Android APK 或 so 文件的分析效率,快速定位关键逻辑,节省大量手动分析的时间。

这次体验让我深刻感受到,善用人工智能工具,能够让我们在技术探索的道路上走得更快、更远。希望这篇实战记录能给你带来一些启发。如果你想了解更多类似的技术拆解与实践分享,欢迎关注 云栈社区 上的技术动态。




上一篇:在Mac mini本地部署Gemma 4与OpenClaw:实现零成本的AI自动化工作流
下一篇:AI时代如何建立个人操作系统?我用四周实验找到了从工具到创造的路径
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-7 16:58 , Processed in 0.656881 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表