首页
社区
课程
招聘
基于Claude+多工具MCP搭建AI辅助Android逆向分析工具链
发表于: 23小时前 438

基于Claude+多工具MCP搭建AI辅助Android逆向分析工具链

23小时前
438

传统 Android 逆向分析通常依赖 JADX、Ghidra、Frida、ADB 等工具,分别完成 Java/Native 代码反编译、静态分析、运行时调试与行为验证。分析过程中,研究者需要在不同工具之间反复切换,并通过大量代码搜索、定位与阅读逐步建立分析思路,整体流程较为繁琐。

本项目尝试将上述逆向分析工具通过 MCP 接入 Claude,使 Claude 作为 AI Agent 参与逆向分析流程。分析者首先明确分析目标并向 Agent 提出任务,Claude 根据目标调用对应的 MCP 工具进行分析;分析者对返回结果进行验证、二次分析或进一步追问,Agent 再根据新的分析方向继续调用工具,最终形成“分析目标 → AI 分析 → 调用工具执行 → 结果验证 → 进一步分析”的闭环。

通过将 AI 的代码理解与多种逆向工具的实际分析能力结合,减少传统逆向过程中重复性的代码搜索、定位与信息整理工作,从而提高 Android 逆向分析的效率,并探索 AI Agent 在实际逆向分析流程中的辅助能力。

项目整体采用 Claude + MCP + Android 逆向工具 + Android 运行环境 的架构。

其中 Claude 作为 AI Agent,负责理解分析目标、拆解分析任务、选择合适的工具并根据工具返回结果继续推进分析。

MCP 作为 Claude 与外部工具之间的连接层,将不同类型的 Android 逆向工具统一接入 Agent,使 Claude 能够根据当前分析阶段调用不同工具。

整体架构可以概括为:

分析者 → Claude → MCP → 逆向工具 → Android 环境 → 分析结果 → Claude

不同逆向工具在整个分析流程中承担不同职责。

主要用于 Java/Kotlin 层分析,包括类、方法、字符串搜索以及调用关系追踪等。

主要用于 APK 初步信息收集和安全检测,例如 Manifest、权限、组件、Exported Activity、Deep Link 以及 Native Library 等信息。

主要用于 Native 层分析。当 Java 层发现 JNI 或 Native 方法后,可以进一步定位对应 SO 文件并分析 Native 函数。

ADB 作为 Android 运行环境的底层控制工具,用于应用安装、设备通信、日志获取和运行状态验证。同时 MobSF 动态分析模块通过 docker 容器使用 ADB 与 Android Emulator 建立连接,实现动态分析环境的自动化控制。

用于动态观察程序运行行为,对静态分析得到的关键方法进行 Hook,从运行时角度验证分析结论。

这些工具并不是相互独立使用,而是根据不同分析阶段进行协同。

通过 MCP Server 将不同逆向工具暴露给 Claude 后,可以直接使用自然语言描述分析任务,而不需要在每个工具之间频繁切换。

如图,claude 中已配置好三个工具,且三个工具的状态都是 running 。image-20260915115806079

JADX 主要负责 Android Java/Kotlin 层代码分析。通过 JADX-AI-MCP,Claude 可以辅助完成:

APK 代码结构分析

类和方法搜索

关键字符串定位

方法调用关系分析

Activity / Service 等组件分析

Java → Native 调用定位

MobSF 主要用于 APK 初步信息收集和安全检测。通过 MCP 接入 docker desktop 运行,可以由 Claude 根据分析需求获取 APK 的基础信息、安全配置以及潜在风险点。

主要关注:

AndroidManifest.xml

权限

Activities

Services

Broadcast Receivers

Content Providers

Exported Components

Deep Link

Native Library

安全配置

同时,MobSF 的分析结果可以作为后续 JADX、Ghidra 和动态分析的输入。image-20260915152810365

当 Java 层分析发现 Native 方法或 SO 文件参与核心逻辑时,需要进一步进入 Native 层。GhidraMCP 将 Ghidra 的 Native 分析能力提供给 Claude,主要用于:

SO 文件分析

ELF 信息分析

Native 函数定位

JNI 分析

函数反编译

交叉引用分析

从而将 Java 层分析进一步延伸到:

Java → JNI → Native → SO

为了验证静态分析结果,需要提供实际的 Android 运行环境。使用 Android Emulator 作为动态分析环境,并通过 ADB 与模拟器进行交互。主要用于:

安装 APK

启动应用

获取 Logcat

执行 Shell 命令

获取进程信息

配合 Frida 进行动态分析

Frida 用于对运行中的应用进行动态分析。当静态分析得到某个关键方法或调用链后,可以通过 Frida 对目标方法进行 Hook,观察其实际运行情况。主要观察:

方法是否实际执行

参数内容

返回值

调用次数

调用时机

Java / Native 之间的运行关系

通过动态结果对静态分析进行验证,从而减少仅依赖代码阅读造成的误判。


冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

最后于 21小时前 被er7编辑 ,原因: 格式问题
收藏
点赞 21
打赏
分享
最新回复 (16)
雪    币: 6691
活跃值: (11877)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
网络这么差吗, 图片还没显示完
23小时前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
er7
3
huangjw [em_078]网络这么差吗, 图片还没显示完
格式问题现在应该没问题了
21小时前
0
雪    币: 321
活跃值: (9648)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
4
JADX MCP感觉不怎么好用
21小时前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
er7
5
fjqisba JADX MCP感觉不怎么好用[em_002]
有其他静态分析mcp推荐吗
20小时前
0
雪    币: 17
活跃值: (1726)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
666666666
20小时前
0
雪    币: 9407
活跃值: (4344)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习一下
19小时前
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
6666
7小时前
0
雪    币: 1007
活跃值: (580)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
例如,搞个实战学习一下
7小时前
0
雪    币: 210
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
666
6小时前
0
雪    币: 321
活跃值: (9648)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
11
er7 有其他静态分析mcp推荐吗
直接导出java代码,遇到反编译失败的让AI自己去分析字节码,我现在都是这么让AI分析APK的
6小时前
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
666
6小时前
0
雪    币: 43
活跃值: (2349)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
6666
6小时前
0
雪    币: 9406
活跃值: (7972)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
感谢分享
5小时前
0
雪    币: 158
活跃值: (5686)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢分享 
2小时前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
为你点赞!
1小时前
0
雪    币: 112
活跃值: (9435)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
tql
38分钟前
0
游客
登录 | 注册 方可回帖
返回