首页
社区
课程
招聘
[原创]DECX:另一个基于 JADX 的 AI 反编译轮子
发表于: 2026-6-23 15:40 4474

[原创]DECX:另一个基于 JADX 的 AI 反编译轮子

2026-6-23 15:40
4474

前段时间用 jadx-ai-mcp 分析 APK,跑了几个小时,体验确实不错。Claude 能自己调 tool 读反编译代码、看导出组件、跟调用链,省了不少手动翻代码的功夫。

有一天晚上我想把 APK 丢到服务器上跑,本地 Claude 连过去用——本地风扇太吵了。结果发现不行。jadx-ai-mcp 的 Python MCP server 要通过 HTTP 连 JADX 插件的 API,而那个 API 只有在 JADX GUI 启动后才存在。

我当时觉得这很正常——JADX 本来就是个桌面工具。但后来仔细想了想:JADX 的反编译引擎 JadxDecompiler 是一个纯 Java 类,new 出来就能用。它根本不依赖 GUI。那为什么 MCP server 非得挂在 GUI 上?

这个念头改变了一切。如果 MCP server 能跟反编译引擎在同一个进程里跑,不经过 GUI,那整个工具链的形态就完全不同了。这就是 DECX 的起点。

jadx-ai-mcp 的架构是三层串联,这存在一个核心问题:MCP 协议层和反编译能力被 GUI 进程边界隔开了,MCP 离不开 GUI。

DECX 的做法是把所有能力放进一个独立的 decx-core 模块里。这个模块不依赖任何 UI 组件,只需要一个 JadxDecompiler 对象就能提供完整的反编译能力。所有代码——API 接口、Service 实现、MCP Tool 定义——全在core中实现

decx-core 是一切的根基。它提供了一套与传输层无关的 API/Services/MCP 实现,不管你是通过 JADX 插件、独立jar、还是 TypeScript CLI 来用,底下的逻辑完全相同。

这层关系用 Kotlin 代码表达就是 Decx 的全局对象:

同一个 Decx.mcpServer(api, port),在 JADX 插件里调用和在 standalone jar 里调用,返回的是同一个类、同一套 29 个工具、同一种 MCP 协议实现。

DecxRoutes 定义 HTTP 路由,McpToolRegistry 定义 MCP tool。两者通过 routePath 一一对应:

由于核心架构和上层分离,我们能够直接使用 Decx 的独立 Jar,也可以使用 Jadx Plugin 的方式,为了方便使用,我也提供了几种方案。

decx-server 打成 fat jar 后,不需要 JADX GUI,不过建议还是使用 Cli / Plugin ,会更方便。

这是最简单的使用方法了,打开 Jadx ,在插件列表里找到 Decx,安装即可。

decx-cli 是 TypeScript 写的,管理 standalone server 的生命周期。通过 --help 命令能够看到怎么使用,当然,也可以直接安装对应的 decx-cli skill 来使用。

这里稍微讲一下decx ard framework run ,这是是 DECX 独有的能力——从连接的 Android 设备自动采集整个框架相关的代码并打包整合分析:

整个过程包括四步流水线:

这样,针对厂商魔改的框架代码,就能够去进行整合性分析,而这套流程的前提就是 decx-core 能脱离 GUI 独立运行。没有这个前提,CLI 没法自动启动 server;没有 server,framework jar 只能手动丢进 JADX GUI。

既然已经做到这里了,那不如更近一步,做一些用来处理真实漏洞挖掘和分析的 skill 吧!

这里必须要感谢 bd2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6G2M7X3W2@1k6i4u0S2i4K6u0r3b7$3q4A6M7X3^5`. 给了我启发——能不能将漏洞挖掘的过程做成一整套skill,但是不局限于漏洞知识,而是发挥模型本身的能力。

这可能是五个 skill 里最核心的一个。它做的不是"用 AI 搜一下有没有漏洞"这种笼统的事,而是一套严格的 subagent 委托 + 证据图 流程。

主 agent 不碰代码。它的工作只有五件事:初始化项目、启动 DECX session、把具体的分析意图委托给 subagent、读取 subagent 的 JSON 摘要、按风险矩阵决定是否升级为正式漏洞。主 agent 跑 decx code 或读源码是违规的——所有分析都在 subagent 里完成。

subagent 收到一个 intent goal(比如"收集攻击面:导出组件、deep link、AIDL、动态 receiver" 或 "跟踪某个 entrypoint 到 sink,证明 5-tuple"),自己创建 intent、跑 decx code 查询、写 fact 和 edge 到证据图、solve 后返回结构化 JSON 摘要。subagent 不能"推理"出漏洞——必须通过 decx code 读到源码,用源码行作为 evidence。validate*check* 这类方法名不算证据(可能只是命名习惯,不代表真的有校验逻辑)。

证据门要求 5 种事实全部存在且由 proves 边连接才能升级为正式漏洞:

复合漏洞链由五种边组合:enable(A 创建 B 需要的入口)、carry(A 传输数据给 B)、amplify(A 放大 B 的影响)、bypass(A 打穿 B 的保护)、observe(A 让 B 的影响可见)。

漏洞模式覆盖 30+ 种应用层场景:Intent 重定向、Bundle/key 失配、WebView JS bridge、Provider 数据泄露/SQL 注入/路径穿越、broadcast 劫持、PendingIntent 滥用、fragment 注入、task hijack、动态 dex 加载、跨 app 数据通道等。


[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

收藏
免费 0
打赏
分享
最新回复 (77)
雪    币: 411
活跃值: (486)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
66676
2026-6-23 15:56
0
雪    币: 95
活跃值: (3317)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
6666666666
2026-6-23 16:14
0
雪    币: 88
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
kk
2026-6-23 16:25
0
雪    币: 743
活跃值: (915)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
有用,感谢分享,jadx的gui好用但是问题实在太多了
2026-6-23 20:52
0
雪    币: 36
活跃值: (1264)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
x1a0f3n9 有用,感谢分享,jadx的gui好用但是问题实在太多了
有问题的话可以提交issue,高强度更新
2026-6-23 20:59
0
雪    币: 1082
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
tql
2026-6-23 21:18
0
雪    币: 8737
活跃值: (9882)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
佬,你这个项目和jadx mcp有什么区别,优点?除了不依赖jadx GUI+找漏洞,对于逆向,有什么帮助?
2026-6-23 21:34
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
tql
2026-6-23 21:35
0
雪    币: 36
活跃值: (1264)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
mb_rjdrqvpa 佬,你这个项目和jadx mcp有什么区别,优点?除了不依赖jadx GUI+找漏洞,对于逆向,有什么帮助?
工程化和自动化
2026-6-23 23:04
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
666
2026-6-23 23:19
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
111
2026-6-24 08:46
0
雪    币: 548
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
学习了
2026-6-24 09:24
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
666
2026-6-24 09:34
0
雪    币: 283
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
6666
2026-6-24 09:35
0
雪    币: 24
活跃值: (492)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
666
2026-6-24 09:51
0
雪    币: 78
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
666
2026-6-24 10:02
0
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
6666
2026-6-24 10:17
0
雪    币: 159
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
看看
2026-6-24 11:03
0
雪    币: 1000
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
看看
2026-6-24 11:18
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
666
2026-6-24 11:49
0
雪    币: 158
活跃值: (5206)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
学习了
2026-6-24 14:56
0
雪    币: 17
活跃值: (1651)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
9999
2026-6-24 15:39
0
雪    币: 7744
活跃值: (24900)
能力值: ( LV12,RANK:550 )
在线值:
发帖
回帖
粉丝
24
看看
2026-6-24 15:45
0
雪    币: 754
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
感谢分享
2026-6-24 17:21
0
游客
登录 | 注册 方可回帖
返回