## 微信小程序协议

先抓包一个小程序进程的返回数据 pkg

大概如下格式

17 //协议状态位

03 03 //协议类型 小程序

07 99 //content 长度

BB 81 24 B3 67 12 D2 34 F9 31 F4 95 46 D9 83 C1
9D E3 7C 5B B6 6F B2 E6 F0 AC 1A FE 9E 02 CD B6
67 EA E9 2D 5B C3 7A 26 7C 34 B5 EF 8D B2 30 C3
BA 90 BB 8E 81 BB A7 A9 58 A3 C9 A7 62 14 4D 14
39 EF 8D 17 FB B9 AB 02 CB 85 8F 9A 84 15 94 40
21 15 DB 40 18 82 2F 83 D2 6A 2D 8F 2C 28 FC 67
FC 88 32 D6 6D A1 27 95 36 76 C2 84 3D 26 20 48
66 CC 88 53 88 38 3E 95 F0 32 F6 2A 53 A3 28 DD
26 5A 82 2A C8 88 03 5F FB F9 FC 7C 95 AB AB F0
71 3A 99 C5 7A 30 A0 BC 81 9D 7B E9 D3 99 2E 7E
7C D2 50 2B AC E0 64 6A 8B 48 00 36 70 13 10 AC
EF CB 2E AB 23 AA AD D3 9D 5B 88 //content

其中第一个字节是状态位 分别有 14 15 16 17这几种 16 17 是业务正常数据。15应该是失败。

小程序第一次会读取pkg的前5个字节。并从中读取后两位作为下一次读取时的参数(content长度)

读取到content数据后。会从中读取前8位作为head处理。剩余数据作为body处理。

BB 81 24 B3 67 12 D2 34 //head

F9 31 F4 95 46 D9 83 C1 9D E3 7C 5B B6 6F B2 E6
F0 AC 1A FE 9E 02 CD B6 67 EA E9 2D 5B C3 7A 26
7C 34 B5 EF 8D B2 30 C3 BA 90 BB 8E 81 BB A7 A9
58 A3 C9 A7 62 14 4D 14 39 EF 8D 17 FB B9 AB 02
CB 85 8F 9A 84 15 94 40 21 15 DB 40 18 82 2F 83
D2 6A 2D 8F 2C 28 FC 67 FC 88 32 D6 6D A1 27 95
36 76 C2 84 3D 26 20 48 66 CC 88 53 88 38 3E 95
F0 32 F6 2A 53 A3 28 DD 26 5A 82 2A C8 88 03 5F
FB F9 FC 7C 95 AB AB F0 71 3A 99 C5 7A 30 A0 BC
81 9D 7B E9 D3 99 2E 7E 7C D2 50 2B AC E0 64 6A
8B 48 00 36 70 13 10 AC EF CB 2E AB 23 AA AD D3
9D 5B 88 //body

对body进行一次解密后得到response数据。

从解密的参数来看应该是aes-128-gcm算法

解密后的数据长度为body长度-0x10.

解密后的数据如下,我将其分为了两部分。第一部分为协议头。第二部分为response.

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 0F

7B 22 72 65 74 5F 6D 6F 64 75 6C 65 22 3A 7B 22 63 6F 75 6E 74 22 3A ... //response

其中response的数据可以直接转文本就是明文字符了。

{"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,"s...略

如果数据走的HTTP协议的话。解密后的数据则大概如下 其中包含协议头和raw。

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

转字符串后如下:

HTTP/1.1 200 OK

Server: nginx

Date: Mon, 07 Nov 2022 11:28:12 GMT

Content-Type: application/json

Transfer-Encoding: chunked

Connection: keep-alive

X-Permitted-Cross-Domain-Policies: all

X-Download-Options: value

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options: nosniff

X-XSS-Protection: 1

Content-Security-Policy: upgrade-insecure-requests;content *

Strict-Transport-Security: max-age=63072000; includeSubdomains; preload

Referrer-Policy: origin-when-crossorigin

61

{"code":"200","msg":"操作成功","data":"v4nPbu3bUpqlwqmdzX+6tQ==","timeStamp":"1667820492127"}

0

最终效果:

拦截小程序发包源码:

WeChat-Hook/PC微信协议/小程序相关算法 at main · snlie/WeChat-Hook · GitHub

PC微信协议 小程序数据接收处理相关推荐

  1. php禁止fidd抓包,PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析

    本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法.分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddler抓取手 ...

  2. php抓包设置参数_PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析

    搜索热词 本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法.分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddl ...

  3. php抓包分析工具下载,PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析...

    本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法.分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddler抓取手 ...

  4. 微信小程序数据的接收详解

    小程序数据接收的详细流程 1.wxml: <view class='inputbox'> 日期<text class="tips2" wx:for="{ ...

  5. 利用fiddler抓包爬取微信小程序数据

    利用fiddler抓包爬取微信小程序数据 1.背景原理 有些微信小程序无法在PC端进行访问 原因 判断非微信'内嵌浏览器',则禁止访问 解决方法 模拟微信'内嵌浏览器'进行访问,需要获取的数据有:Us ...

  6. 微信小程序数据助手怎么用

    原文地址:http://www.wxapp-union.com/article-2360-1.html 微信小程序数据助手怎么用?数据助手是微信最新推出的一个应用,该应用主要是为了让用户能够查看自己小 ...

  7. Charles抓取微信小程序数据 以及 其它应用网站数据

    为了抓取小程序数据所以使用Charles来抓取,下面介绍下使用方法(mac环境下使用).使用Charles可以非常方便的抓取Http/Https请求.官方dmg下载地址:点击此处下载 Charles抓 ...

  8. 微信小程序数据统计和错误统计的实现

    某些情况下我们需要对小程序某些用户的行为进行数据进行统计,比如统计某个页面的UV, PV等,统计某个功能的使用情况等.好让产品对于产品的整个功能有所了解. 在网页里,我们很多人都用过谷歌统计,小程序里 ...

  9. win7下搭建小程序服务器,重磅!微信PC端支持小程序直接开启 适配Win7及以上系统...

    原标题:重磅!微信PC端支持小程序直接开启 适配Win7及以上系统 腾讯科技讯 8月9日,腾讯科技在"微信开放社区"发现,微信正在测试"PC端支持打开小程序"能 ...

最新文章

  1. QQ web api
  2. linux shell 等待输入_shell中获得用户的输入
  3. 快用一用 lambda 表达式吧,让你的代码更简洁、更漂亮!
  4. xcode多工程联编 - 详细教程
  5. C++_类和对象_C++多态_多态的原理剖析---C++语言工作笔记070
  6. Selenium2+python自动化35-获取元素属性
  7. JDK安装以及配置环境变量详细步骤
  8. sklearn 决策树无法处理类别特征
  9. avs php,linux 安装AdultVideoScript (AVS)全教程
  10. NUAA 南航操作系统实验
  11. 经验总结:完整做完一款游戏需要经历哪些流程?
  12. ECTouch_v2.7.2-一款强大的商城系统源码附视频教程
  13. 乐观锁实现之CAS算法分析
  14. iOS蓝牙链接打印机的使用心得
  15. iTween基础之iTweenPath(自定义路径移动)
  16. 什么是计算机?计算机硬件详细介绍和参数解读[2]
  17. 云服务,云服务商比较
  18. 键盘按0键出仅计算机复制,键盘上复制粘贴按哪两个键
  19. 微信公众号外部登录与授权,保存登录信息问题记录
  20. 神经网络学习笔记(七) 自组织竞争神经网络

热门文章

  1. JavaScript:createElement
  2. 并发编程之 Executor 线程池原理与源码解读
  3. 如何让安卓vivo IQOO手机连接adb
  4. 区块链(Blockchain)
  5. 文件错删了如何才能恢复
  6. 关于反向域名解析(Reverse DNS)
  7. 实时即未来,大数据项目车联网之实时ETL开发的核心逻辑【六】
  8. 【软考中级】多媒体应用设计师复习笔记第八章
  9. Unity热更新技术学习——AssetsBundle详解
  10. 关于加密传输,镭速加密传输解决方案