一、目标
Jadx : "我也很想进步,古法太繁琐了,现在的年轻人都玩不转。"
fenfei : "这个可以有。"
二、步骤
安装
mcp是什么咱们就不解释了,刚来的同学可以翻翻前情提要回顾一下 http://91fans.com.cn/post/idamcp/
今天我的新朋友是 jadx-ai-mcp
https://github.com/zinja-coder/jadx-ai-mcp
她的安装分两部分
- 去到 /Users/fenfei/Desktop/tool/jadx-1.5.3/bin 目录下面执行
./jadx plugins --install "github:zinja-coder:jadx-ai-mcp"- 下载 jadx-mcp-server 对接 AI 用
https://github.com/zinja-coder/jadx-ai-mcp/releases/download/v5.0.0/jadx-mcp-server-v5.0.0.zip
开工
找个软柿子捏一下
就用之前的 http://91fans.com.cn/post/txtread/ ,咱们换AI来搞 Jadx打开,然后 文件 → 首选项 → 插件
这说明插件部分安装OK
然后给 AI IDE 配置上 MCP Server
{
"mcpServers": {
"jadx": {
"command": "/opt/miniconda3/envs/jadxmcp/bin/python",
"args": [
"/Users/fenfei/Desktop/tool/jadx-mcp-server/jadx_mcp_server.py"
],
"alwaysAllow": [
"get_android_manifest",
"search_classes_by_keyword",
"get_class_source",
"search_method_by_name"
]
}
}
}细心的同学可能发现和之前IDA的MCP配置有很大的不一样。
AI这玩意还在迅猛发展,百家争鸣,所以MCP的协议有很多种,具体这两种协议哪种先进,可以问问 AI。
咱们是实用主义着,先不纠结原理了,连上了就行,在 AI IDE里呼唤神龙…
连接jadx mcp, 定位 token=rOW60Ct5iGxgRX0Olulcz9IXtWiGmAO7cbL7Y%2FU0tOc%3D 这个 token计算的位置,然后写个Frida hook 脚本然后就是默默的等待,想起了 Chrome的恐龙游戏,我感觉在等待 AI干活的过程中,应该来个 是男人就下500层 的小游戏。怪不得李老板喜欢玩扫雷,原来他把我当AI了,发布命令,然后边玩扫雷,边等我的结果。
有了AI 咱们也能过上李老板的日子了,越来越有盼头了。
AI 写完了, 我就不贴代码了, (小声告诉你,贴 知识星球 了)
任务完成
已成功定位token计算位置并创建Frida hook脚本 token_hook.js
Token生成流程分析
根据反编译代码,token rOW60Ct5iGxgRX0Olulcz9IXtWiGmAO7cbL7Y%2FU0tOc%3D 的生成流程:
主要方法: Token.Companion.m() - getToken方法
输入: URI路径 + 参数Map
计算: hash_timestamp 格式的字符串
使用AES加密(密钥: 7A3II/M5Ja0S4gdf)
Hash计算: Token.Companion.k()
拼接: uri + 排序后的参数 + "mVjdXyqwjlEptwYY"
使用MurmurHash算法计算hash值
AES加密: AES.Companion.b()
算法: AES/CBC/PKCS5Padding
密钥: 7A3II/M5Ja0S4gdf
IV: 16-Bytes--String
输出: Base64编码
Hook脚本功能
脚本会拦截以下关键方法:
Token.getToken() - 捕获token生成
MurmurHash.d() - 捕获hash计算
AES.encodeAES() / AES.decodeAES() - 捕获加解密
SignatureUtil.sign() - 捕获签名生成
Token.getHash() - 捕获内部hash计算
Token.getUrlParamsByMap() - 捕获参数拼接
使用方法:
frida -U -f <包名> -l token_hook.js --no-pause说的有模有样的,赶紧跑下代码试试。
我去,没效果
AI 又开始干活了,咱们继续扫雷。
过了几分钟,新的代码又搞完了,继续跑。 还是没有效果
AI 继续干活,咕嘟嘟,干了一通,扔给我了一个新的代码
[+] TokenUtil.f() - Calculate Hash
Input1: /v1/category/female
Input2: channel=zxf2019_19206_001&os=Android&package=cn.ttkmfxs.novel&udid=01bb90d6de80f3cb01bb90d6de80f3cb&v=3.3.24.R
Hash: -1926105764
[+] TokenUtil.e() - AES Encrypt
Plain: -1926105764_1766754803859
[+] AES.b() - Encrypt
Value: -1926105764_1766754803859
Key: @cLjKxIl7hlto3tR
Encrypted: nADo5PoDE0nEwN6gKB9L8WF9OzAmwqviEgy/ljE1DI0=
Encrypted: nADo5PoDE0nEwN6gKB9L8WF9OzAmwqviEgy/ljE1DI0=
Generated Token (URL encoded): nADo5PoDE0nEwN6gKB9L8WF9OzAmwqviEgy%2FljE1DI0%3Doh yeah,这次成功了。感觉和玩大转盘差不多,多玩几次,总会有惊喜。
三、总结
有种赛博求签的感觉,心诚则灵。理解了有些人有事就扑通跪倒在佛像前面,感情佛祖也是AI的一种。
基本功还是得有的,不然被ai骗人都不知道咋回事。
天地无穷期,生命则有穷期,去一日,便少一日;富贵有定数,学问则无定数,求一分,便得一分。

关注微信公众号,最新技术干货实时推送

文章作者 奋飞
上次更新 2025-12-25
许可协议 奋飞安全原创,转载请注明出处。