Jadx也想要翅膀

admin 2026-01-01 05:15:44 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍利用AI增强Jadx逆向效率,通过配置jadx-ai-mcp插件及MCP服务器,实现AI辅助定位Android应用Token生成逻辑并编写Frida脚本。测试显示AI能自动分析MurmurHash和AES算法,虽需多次迭代修正,但展示了AI辅助逆向的潜力,同时强调从业者需具备基础技能以验证AI结果。 综合评分: 85 文章分类: 逆向分析,移动安全,AI安全


cover_image

Jadx也想要翅膀

原创

飞哥安全

奋飞安全

2025年12月31日 10:17 北京

一、目标

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打开,然后 文件 -> 首选项 -> 插件

jadxplugin

这说明插件部分安装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

说的有模有样的,赶紧跑下代码试试。

我去,没效果

不对 没有hook到

AI 又开始干活了,咱们继续扫雷。

过了几分钟,新的代码又搞完了,继续跑。 还是没有效果

还是没有

AI 继续干活,咕嘟嘟,干了一通,扔给我了一个新的代码

[+] TokenUtil.f() - Calculate Hash
&nbsp; &nbsp; Input1: /v1/category/female
&nbsp; &nbsp; Input2: channel=zxf2019_19206_001&os=Android&package=cn.ttkmfxs.novel&udid=01bb90d6de80f3cb01bb90d6de80f3cb&v=3.3.24.R
&nbsp; &nbsp; Hash: -1926105764

[+] TokenUtil.e() - AES Encrypt
&nbsp; &nbsp; Plain: -1926105764_1766754803859

[+] AES.b() - Encrypt
&nbsp; &nbsp; Value: -1926105764_1766754803859
&nbsp; &nbsp; Key: @cLjKxIl7hlto3tR
&nbsp; &nbsp; Encrypted: nADo5PoDE0nEwN6gKB9L8WF9OzAmwqviEgy/ljE1DI0=
&nbsp; &nbsp; Encrypted: nADo5PoDE0nEwN6gKB9L8WF9OzAmwqviEgy/ljE1DI0=
&nbsp; &nbsp; Generated Token (URL encoded): nADo5PoDE0nEwN6gKB9L8WF9OzAmwqviEgy%2FljE1DI0%3D

oh yeah,这次成功了。感觉和玩大转盘差不多,多玩几次,总会有惊喜。

💡 TIP frida多准备几个版本,有时候v17不好使,我还能继续上v16.x

三、总结

有种赛博求签的感觉,心诚则灵。理解了有些人有事就扑通跪倒在佛像前面,感情佛祖也是AI的一种。

基本功还是得有的,不然被ai骗人都不知道咋回事。

天地无穷期,生命则有穷期,去一日,便少一日;富贵有定数,学问则无定数,求一分,便得一分。

  • 💡 TIP

    \

  • 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331讨论下。

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

手机查看不方便,可以网页看

    http://91fans.com.cn


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:奋飞安全 飞哥安全《Jadx也想要翅膀》

Jadx也想要翅膀 网络安全文章

Jadx也想要翅膀

文章总结: 本文介绍利用AI增强Jadx逆向效率,通过配置jadx-ai-mcp插件及MCP服务器,实现AI辅助定位Android应用Token生成逻辑并编写F
评论:0   参与:  0