首页
社区
课程
招聘
利用frida主动调用小程序云托管API
发表于: 2024-12-19 15:28 46054

利用frida主动调用小程序云托管API

2024-12-19 15:28
46054

好久没有碰Android逆向了,有1年多了,基本都生疏了,前来复习一下;
本着研究学习的方向,探索Wx小程序云托管的调用机制;

Charles发现云托管的API没办法直接抓包,似乎用的是内部的通道进行通信的,所以只能尝试往小程序jsapi方向下手。

在开始之前,需要先把小程序代码脱出来。
673K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6%4N6i4R3I4j5h3&6Q4x3V1k6%4P5r3q4H3K9$3M7`.
在GitHub上无意中找到的。该项目由go编写的,非常方便,直接扫描电脑上缓存的小程序并且还有解压
图片描述
在图上发现该小程序是调用 t.cloud.init 进行初始化云托管,随后通过t.cloud.callContainer来实现调用接口。

把wechat.apk拖入到jadx-gui进行分析,并尝试检索关键词,callContainer 关键字。
图片描述
但是很遗憾,没有搜索到任何结果,并且抓不到数据包,简单的方式基本上找不到任何有用的结果。

尝试转变思路,需要尝试搜索一些关键词不是很常见但可能小程序会调用到的,因为如果搜索常见关键字,可能会导致非常多的结果,也同样无从下手。

最后我选择搜索了wx小程序的一些常用的函数名称,如:getStorageSync

图片描述

接着直接复制frida的hook代码片段,直接hook查看
图片描述
然后去小程序一顿乱操作,可以看到已经hook到了。

随之我们打印堆栈,往上翻,看看能不能找到wx和小程序的交互处。
图片描述
打印堆栈后,发现 com.tencent.mm.plugin.appbrand.jsapi.p.proceed 比较不顺眼,可以进它进行hook尝试

图片描述

刚才的调用堆栈是

也就是我查看的proceed,接下来应该会往 u.P 走
所以简单阅读下代码,发现下面这行代码进行了一个json的返回

由于proceed没有提供传入参数,所以直接hook r.D 这个方法里面,看看他的参数是什么?

图片描述

上面图上的打印就是 r.D 的参数和返回值,我在进行hook的时候,随意滑动了一下小程序和触发一些接口。

其中这一串我发现似乎就是小程序云托管调用的API


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 8
支持
分享
最新回复 (7)
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
大佬,Frida主动调用云函数没问题 但是你这个小程序似乎是走的网关,网关的加解密在js里 不在微信里 是AES加解密, hook 云函数相关的点能拿到key,最后用网关的key去直接解密请求抓包,主动发包也可以用这个token和key去组包直接发https请求
2024-12-20 07:42
1
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
有没有点能直接hook 然后给小程序注入js呢?
2024-12-20 07:43
0
雪    币: 2096
活跃值: (2350)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mb_tlhbjuoh 大佬,Frida主动调用云函数没问题 但是你这个小程序似乎是走的网关,网关的加解密在js里 不在微信里 是AES加解密, hook 云函数相关的点能拿到key,最后用网关的key去直接解密请求抓包,主 ...
这个大佬能否再说详细点
2024-12-23 10:10
0
雪    币: 1814
活跃值: (3714)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
mb_fidppcok 这个大佬能否再说详细点
具体构造的实现是在 libwxa-runtime-binding.so 实现的,函数名:nativeInvokeCallbackHandler
2024-12-23 14:37
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
frida能不能主动调用微信小程序中的wx.getUserCryptoManager().getLatestUserKey()函数?
2025-3-4 15:54
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
mb_tlhbjuoh 大佬,Frida主动调用云函数没问题 但是你这个小程序似乎是走的网关,网关的加解密在js里 不在微信里 是AES加解密, hook 云函数相关的点能拿到key,最后用网关的key去直接解密请求抓包,主 ...
frida能不能主动调用微信小程序中的wx.getUserCryptoManager().getLatestUserKey()函数?
2025-3-4 15:55
0
雪    币: 12
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
mb_tlhbjuoh 大佬,Frida主动调用云函数没问题 但是你这个小程序似乎是走的网关,网关的加解密在js里 不在微信里 是AES加解密, hook 云函数相关的点能拿到key,最后用网关的key去直接解密请求抓包,主 ...
你确定是这套流程吗?  老哥搞定了么?
2025-5-8 16:25
0
游客
登录 | 注册 方可回帖
返回