技术教程破解资源

PCVX小程序抓包分析

整理:jimmy2024/12/31浏览2
简介首先退出当前登录的微信并下载**3.7.6.44**版本的微信然后将这个目录下的所有文件及文件夹删除**C:\Users\Administrator\AppData\Roaming\Tencent\WeChat**登录微信后随便找一个小程序点进去。进到这个目录下查看文件夹名称是否为**4648***

首先退出当前登录的微信并下载**3.7.6.44**版本的微信
然后将这个目录下的所有文件及文件夹删除
**C:\Users\Administrator\AppData\Roaming\Tencent\WeChat**
登录微信后随便找一个小程序点进去。
进到这个目录下查看文件夹名称是否为**4648**
**C:\Users\Administrator\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WMPFRuntime**
并确保该文件的版本为**1.9.4648.2**
**C:\Users\Administrator\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WMPFRuntime\4648\extracted\runtime\WeChatAppEx.exe**
x64dbg附加 WeChatAppEx.exe.
注意: **找有小程序标题的那个附加。**
PCVX小程序抓包分析

image.png

1


下断recv先抓一个返回数据
PCVX小程序抓包分析

image.png

2


抓到的数据大概如下格式
补图:
PCVX小程序抓包分析

image.png

3


[Asm] 纯文本查看 复制代码
17 //协议状态位03 03 //协议类型 小程序07 99 //content 长度BB 81 24 B3 67 12 D2 34 F9 31 F4 95 46 D9 83 C19D E3 7C 5B B6 6F B2 E6 F0 AC 1A FE 9E 02 CD B667 EA E9 2D 5B C3 7A 26 7C 34 B5 EF 8D B2 30 C3BA 90 BB 8E 81 BB A7 A9 58 A3 C9 A7 62 14 4D 1439 EF 8D 17 FB B9 AB 02 CB 85 8F 9A 84 15 94 4021 15 DB 40 18 82 2F 83 D2 6A 2D 8F 2C 28 FC 67FC 88 32 D6 6D A1 27 95 36 76 C2 84 3D 26 20 4866 CC 88 53 88 38 3E 95 F0 32 F6 2A 53 A3 28 DD26 5A 82 2A C8 88 03 5F FB F9 FC 7C 95 AB AB F071 3A 99 C5 7A 30 A0 BC 81 9D 7B E9 D3 99 2E 7E7C D2 50 2B AC E0 64 6A 8B 48 00 36 70 13 10 ACEF CB 2E AB 23 AA AD D3 9D 5B 88 //content

其中第一个字节是状态位 分别有 14 15 16 17这几种 16 17 是业务正常数据。15应该是失败。
对buffer下访问断返回后来到这里
PCVX小程序抓包分析

image.png

4


**RVA:2DF0866**
函数会执行两次。
第一次读取包的buffer前5个字节。从中会取出后两位,也就是长度当做下一次调用的参数。
第二次读取buffer+5位置的data(len参数来源于第一次获取)
读取完数据后。会从中再读取前8位作为head处理。
剩余数据当作body处理。
PCVX小程序抓包分析

image.png

5


**RVA:1DE4802**
[Asm] 纯文本查看 复制代码
BB 81 24 B3 67 12 D2 34 //headF9 31 F4 95 46 D9 83 C1 9D E3 7C 5B B6 6F B2 E6F0 AC 1A FE 9E 02 CD B6 67 EA E9 2D 5B C3 7A 267C 34 B5 EF 8D B2 30 C3 BA 90 BB 8E 81 BB A7 A958 A3 C9 A7 62 14 4D 14 39 EF 8D 17 FB B9 AB 02CB 85 8F 9A 84 15 94 40 21 15 DB 40 18 82 2F 83D2 6A 2D 8F 2C 28 FC 67 FC 88 32 D6 6D A1 27 9536 76 C2 84 3D 26 20 48 66 CC 88 53 88 38 3E 95F0 32 F6 2A 53 A3 28 DD 26 5A 82 2A C8 88 03 5FFB F9 FC 7C 95 AB AB F0 71 3A 99 C5 7A 30 A0 BC81 9D 7B E9 D3 99 2E 7E 7C D2 50 2B AC E0 64 6A8B 48 00 36 70 13 10 AC EF CB 2E AB 23 AA AD D39D 5B 88 //body

然后对body进行一次解密后得到最终response数据交给app做后续处理。
PCVX小程序抓包分析

image.png

6


**RVA:1DE485A**
从解密的参数来看应该是aes-128-gcm算法
解密后的数据如下,我将其分为了两部分。
第一部分为协议头。
第二部分为json_data(也有可能是HTTP的raw).
[Asm] 纯文本查看 复制代码
00 00 31 01 04 00 00 00 0F 88 61 96 D0 7A BE 94 03 AA 69 3F 75 04 01 09 40 82 E3 6C DC 10 54 C5 A3 7F 5F 96 1D 75 D0 62 0D 26 3D 4C 74 41 EA FB 24 E3 B1 05 4C 1C 37 E1 59 EF 00 07 3E 00 00 00 00 00 0F7B 22 72 65 74 5F 6D 6F 64 75 6C 65 22 3A 7B 22 63 6F 75 6E 74 22 3A ... //json_data

其中response的数据可以直接转文本就是明文字符了。
[HTML] 纯文本查看 复制代码
{    "ret_module": {        "count": 50,        "data": [            {                "slot_num": 7,                "device_id": 100031366,                "order_id": 31359415,                "name": "千惠便利店",                "coins": 3,                "create_time": "2022-08-09 09:52:36",                "stack_id": 26507501,                "status": 1,                "refundCoins": null            },            {                "order_id": 28234418,                "slot_num": 7,                "device_id": 100031366,                "name": "千惠便利店",                "coins": 2,                "stack_id": 23882273,                "create_time": "2022-07-18 09:56:05",                "status": 1,                "refundCoins": null            },            {                "create_time": "2022-07-13 09:47:55",                "slot_num": 7,                "stack_id": 23308528,                "device_id": 100031366,                "order_id": 27545901,                "name": "千惠便利店",                "coins": 2,                "status": 1,                "refundCoins": null            },            {                "slot_num": 7,                "device_id": 100031366,                "order_id": 27258391,                "name": "千惠便利店",                "stack_id": 23074033,                "coins": 2,                "create_time": "2022-07-11 09:20:23",                "status": 1,                "refundCoins": null            },            {                "slot_num": 7,                "device_id": 100031366,                "stack_id": 22288022,                "name": "千惠便利店",                "coins": 2,                "order_id": 26302324,                "create_time": "2022-07-04 09:34:32",                "status": 1,                "refundCoins": null            },            {                "order_id": 24564459,                "stack_id": 20871834,                "slot_num": 7,                "device_id": 100031366,                "name": "千惠便利店",                "coins": 3,                "create_time": "2022-06-21 09:17:29",                "status": 1,                "refundCoins": null            },            {                "slot_num": 7,                "device_id": 100031366,                "name": "千惠便利店",                "coins": 2,                "create_time": "2022-06-20 14:30:20",                "status": 1,                "stack_id": 20782357,                "order_id": 24453351,               

如果数据走的HTTP协议的话。解密后的数据则大概如下 其中包含http报文协议头和raw。
[Asm] 纯文本查看 复制代码
48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D 0A 53 65 72 76 65 72 3A 20 6E 67 69 6E 78 0D 0A 44 61 74 65 3A 20 4D 6F 6E 2C 20 30 37 20 4E 6F 76 20 32 30 32 32 20 31 31 3A 32 38 3A 31 32 20 47 4D 54 0D 0A 43 6F 6E 74 65 6E 74 2D 54 79 70 65 3A 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 6A 73 6F 6E 0D 0A 54 72 61 6E 73 66 65 72 2D 45 6E 63 6F 64 69 6E 67 3A 20 63 68 75 6E 6B 65 64 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 6B 65 65 70 2D 61 6C 69 76 65 0D 0A 58 2D 50 65 72 6D 69 74 74 65 64 2D 43 72 6F 73 73 2D 44 6F 6D 61 69 6E 2D 50 6F 6C 69 63 69 65 73 3A 20 61 6C 6C 0D 0A 58 2D 44 6F 77 6E 6C 6F 61 64 2D 4F 70 74 69 6F 6E 73 3A 20 76 61 6C 75 65 0D 0A 58 2D 46 72 61 6D 65 2D 4F 70 74 69 6F 6E 73 3A 20 53 41 4D 45 4F 52 49 47 49 4E 0D 0A 58 2D 43 6F 6E 74 65 6E 74 2D 54 79 70 65 2D 4F 70 74 69 6F 6E 73 3A 20 6E 6F 73 6E 69 66 66 0D 0A 58 2D 58 53 53 2D 50 72 6F 74 65 63 74 69 6F 6E 3A 20 31 0D 0A 43 6F 6E 74 65 6E 74 2D 53 65 63 75 72 69 74 79 2D 50 6F 6C 69 63 79 3A 20 75 70 67 72 61 64 65 2D 69 6E 73 65 63 75 72 65 2D 72 65 71 75 65 73 74 73 3B 63 6F 6E 74 65 6E 74 20 2A 0D 0A 53 74 72 69 63 74 2D 54 72 61 6E 73 70 6F 72 74 2D 53 65 63 75 72 69 74 79 3A 20 6D 61 78 2D 61 67 65 3D 36 33 30 37 32 30 30 30 3B 20 69 6E 63 6C 75 64 65 53 75 62 64 6F 6D 61 69 6E 73 3B 20 70 72 65 6C 6F 61 64 0D 0A 52 65 66 65 72 72 65 72 2D 50 6F 6C 69 63 79 3A 20 6F 72 69 67 69 6E 2D 77 68 65 6E 2D 63 72 6F 73 73 6F 72 69 67 69 6E 0D 0A 0D 0A 36 31 0D 0A 7B 22 63 6F 64 65 22 3A 22 32 30 30 22 2C 22 6D 73 67 22 3A 22 E6 93 8D E4 BD 9C E6 88 90 E5 8A 9F 22 2C 22 64 61 74 61 22 3A 22 76 34 6E 50 62 75 33 62 55 70 71 6C 77 71 6D 64 7A 58 2B 36 74 51 3D 3D 22 2C 22 74 69 6D 65 53 74 61 6D 70 22 3A 22 31 36 36 37 38 32 30 34 39 32 31 32 37 22 7D


[Asm] 纯文本查看 复制代码
HTTP/1.1 200 OKServer: nginxDate: Mon, 07 Nov 2022 11:28:12 GMTContent-Type: application/jsonTransfer-Encoding: chunkedConnection: keep-aliveX-Permitted-Cross-Domain-Policies: allX-Download-Options: valueX-Frame-Options: SAMEORIGINX-Content-Type-Options: nosniffX-XSS-Protection: 1Content-Security-Policy: upgrade-insecure-requests;content *Strict-Transport-Security: max-age=63072000; includeSubdomains; preloadReferrer-Policy: origin-when-crossorigin61{"code":"200","msg":"操作成功","data":"v4nPbu3bUpqlwqmdzX+6tQ==","timeStamp":"1667820492127"}0

最终效果:
PCVX小程序抓包分析

image.png

7


源码下载:
https://github.com/snlie/WeChat-Hook/tree/main/PC%E5%BE%AE%E4%BF%A1%E5%8D%8F%E8%AE%AE/%E5%B0%8F%E7%A8%8B%E5%BA%8F%E7%9B%B8%E5%85%B3%E7%AE%97%E6%B3%95


​