小沫子 发表于 2023-9-11 18:24

windows下通杀wx小程序云函数实战

本帖最后由 小沫子 于 2023-9-11 18:30 编辑

# 本文章仅用于学习交流,请勿用于非法用途
> 试过的都知道, 用了云函数的小程序抓包是拿不到结果的
> 找了个使用云开发做的小程序 **《某问卷系统》**

### 1. 解包
- 工具有不少
- 我这里用的是 (https://github.com/r3x5ur/unveilr) 最新版

```bash
unveiler wx -sf "D:\WeChat Files\Applet\wx5cxxxxxxxx13347f\77"
```

### 2. 确定是云开发
- 打开查看app.js 确实是云开发的
!(https://pic.imgdb.cn/item/64fa90bd661c6c8e548fd4df.jpg)
- 这种的想抓数据,只能用 (https://baike.baidu.com/item/%E8%BF%9C%E7%A8%8B%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8/7854346) 了

### 3. 修改并重新打包

- 需要改代码重新打包了
- 我们用 (https://github.com/r3x5ur/unveilr) 重新解包一份不解析出`wxml`的

```bash
unveiler wx --no-parse -f "D:\WeChat Files\Applet\wx5cxxxxxxxx13347f\77\__APP__.wxapkg"
```

!(https://pic.imgdb.cn/item/64fa924c661c6c8e5490370a.jpg)
- 先找到入口,一般在 `app-service.js` 这个文件里,搜索 `"app.js"`
!(https://pic.imgdb.cn/item/64fa92e0661c6c8e5490a950.jpg)

- 先开启 `debug` 模式
- 将以下代码注入到`onLaunch`回调中
!(https://pic.imgdb.cn/item/64fa9391661c6c8e5490cb2f.jpg)
- 使用 (https://github.com/r3x5ur/unveilr) 进行重打包,这里我还需要频繁改动,所以加上w参数

```bash
unveiler wx -wp "D:\WeChat Files\Applet\wx5cxxxxxxxx13347f\77\__APP__"
```

- 然后重新打开小程序
!(https://pic.imgdb.cn/item/64fa94cf661c6c8e549101c4.jpg)
- 会发现加载失败,这时候就要用`frida`了
- 这里贴一个我自己用的`frida`脚本

```js
const arr2str = (bytes) => String.fromCharCode(...new Uint8Array(bytes))
const targetPtr = Module.getBaseAddress('WeChatAppEx.exe').add('0x2C1CBB8')
Interceptor.attach(targetPtr, {
onEnter(args) {
    void args
    const length = 0x20
    const rdx = this.context.rdx
    const rbp = this.context.rbp
    const p1 = rdx.readPointer()
    const p2 = rbp.readPointer()
    // 将原始 MD5 的数据覆盖到当前 MD5
    const oriMd5 = p1.readByteArray(length)
    const curMd5 = p2.readByteArray(length)
    const m1 = arr2str(curMd5)
    const m2 = arr2str(oriMd5)
    if (!m2 || m1 === m2) return
    p2.writeByteArray(oriMd5)
    console.log(`[+] Replaced: ${m1} -> ${m2}`)
},
})
```

这个脚本仅用于`RadiumWMPF`为`6945`的运行环境
!(https://pic.imgdb.cn/item/64fa9596661c6c8e54914877.jpg)
- 开启firda然后重新打包就可以直接生效了,并且弹出了`vConsole`
!(https://pic.imgdb.cn/item/64fa9a07661c6c8e54923343.jpg)
- 接下载将所有云函数的请求都打印到控制台,或者写一个`websocket`服务发出去就行了,请求的话也可以使用`websocket`控制
- 搜了以下 `wx.cloud.callFunction` 发现有一大片
- 这时候可以注入一点代码到入口处

```js
const oldCloud = wx.cloud;
const oriCF = oldCloud.callFunction
oldCloud.callFunction = function (config) {
    const _success = config.success
    config.success = function (res){
      console.log('callFunction===>',res);
      _success(res);
    }
    oriCF(config)
}
```
然后重新打开就可以看到代码已经生效
利用重打包功能,剩下的事情就简单了,直接接个`websocket`出去就能实现`rpc`了
!(https://pic.imgdb.cn/item/64faa7a3661c6c8e5494db5a.jpg)

小猫猫 发表于 2023-10-30 23:15

你好,看到你写的关于hook云函数的方式,十分感谢。
现在有个云托管,用的是
wx.cloud.callContainer,然后我用你的方式写的如下不起作用,

const oldCloud = wx.cloud;
const oriCF = oldCloud.callContainer
oldCloud.callContainer= function (config) {
    const _success = config.success
    config.success = function (res){
      console.log('callContainer===>',res);
      _success(res);
    }
    oriCF(config)
}

希望指点。

周易 发表于 2023-9-12 19:50

ReichesGeld 发表于 2023-9-12 18:54
@周易 哥,麻烦问一下enable-chrome-inspector可以使用得前提是微信版本多少呢

大约……自从`WMPFRuntime`更新为`RadiumWMPF`的时候就有了吧。

虽然普通用户往往感受不到,但是微信内置浏览器的更新实际是较为频繁的。当前的LTS版本如下。

```
https://dldir1.qq.com/weixin/Windows/XPlugin/Package/WMPFRuntime_1.0.1.287_V4676.zip
https://dldir1.qq.com/weixin/Windows/XPlugin/Package/RadiumWMPF_2.0.6.125_x86_V6938.zip
https://dldir1.qq.com/weixin/Windows/XPlugin/Package/RadiumWMPF_2.0.8.33_x64_V8379.zip
https://dldir1.qq.com/weixin/Windows/XPlugin/Package/RadiumWMPF_2.0.8.35_x64_V8391.zip
https://dldir1.qq.com/weixin/Windows/XPlugin/Package/RadiumWMPF_2.0.9.75_x64_V8423.zip
https://dldir1.qq.com/weixin/Windows/XPlugin/Package/RadiumWMPF_2.0.9.85_x64_V8431.zip
```

同时支持`--enable-chrome-inspector`(公众号)和`--enable-vconsole`(小程序)可能是2.0.6版本的事情了。后续高版本中移除(隐藏)了`--enable-vconsole`(小程序)。

wasm2023 发表于 2023-9-12 11:38

unveilr最新版在哪里可以下载到呢

longzhiye 发表于 2023-9-12 13:09

感谢楼主的无私奉献

lc125 发表于 2023-9-12 13:35

马克11111

小沫子 发表于 2023-9-12 13:52

wasm2023 发表于 2023-9-12 11:38
unveilr最新版在哪里可以下载到呢

https://u.openal.lat/

wyp123 发表于 2023-9-12 14:22

unveilr 竟然收费了

小沫子 发表于 2023-9-12 14:27

wyp123 发表于 2023-9-12 14:22
unveilr 竟然收费了

好像是的:(eew

culprit 发表于 2023-9-12 14:29


unveilr最后免费版本是多少

小沫子 发表于 2023-9-12 14:33

culprit 发表于 2023-9-12 14:29
unveilr最后免费版本是多少

不清楚,我用的时候就这样了,我在GitHub上看到的,那时候就只有一个链接地址 {:1_896:}

wasm2023 发表于 2023-9-12 15:05

小沫子 发表于 2023-9-12 13:52
https://u.openal.lat/

楼主,麻烦回复下私信
页: [1] 2 3 4 5 6
查看完整版本: windows下通杀wx小程序云函数实战