提交预约流程
注意
- 抓包分析好像还涉及到wxlib/wx/login 不过从后面提交数据来看好像用不到,可能我技术问题吧
抓包分析
有人可能最新微信PC抓不了小程序包
解决办法
-
打开一个任意小程序,打开任务管理器,找到进程。右键打开文件位置。
-
退出电脑微信,右键结束小程序进程。
-
找到这个目录后删除这个目录
-
或者你有everything这个工具,直接搜索 WMPFRuntime 然后右键打开所在文件夹,把里面这个4376目录删除就可以
2.0新变化
- 位置预约的一些信息加密了
预约信息加密解决
反编译
这次小程序反编译出来的文件
反编译后查看源代码
-
预约位置关键代码
RSA加密的,跟着他代码来就可以
-
找啊找,发现找到了,在app.js当中是rsa.modules和exponent加密代码
-
找啊找,找到了小程序图书馆调用的函数工具库
-
接下来就简答了,模拟导入就可以了
计算生成预约js(nodejs下运行)代码
const ttt = require("./security.js");
var modulus = "";//拆包一下就知道
var exponent = "010001";
var iii = ttt.getKeyPair(exponent, "", modulus);
// time_end时间截止
//时间段,1代表8:00-12:00时间段
//时间段,2代表12:00-17:00时间段
//时间段,3代表17:30-23:00时间段
//day_time日期时间 2022-04-10
//num 为时间段
var id = 11;
var vd_id = 8235; //区域代码
var num = 1; //是预约时间段1 2 3
var day_time = "2022-04-23"; //预约日期
var time_end = "23:00"; //截止时间段
// var r = a.data.selectSeat.id + "," + a.data.selectSeat.vd_id + "," + a.data.urlOptions.num + "," + a.data.urlOptions.day_time + ", " + a.data.urlOptions.time_end
var rsa_data = id + "," + vd_id + "," + num + "," + day_time + ", " + time_end;
//预约位置的时候的加密算法
var rsa_result = ttt.encryptedString(iii, rsa_data);
console.log("预约加密代码",rsa_result);//也就是获取info部分
接下来就简答了如果有了这个预约加密代码
提交预约代码
var userSeatInfoOption={
method:"get",
url:"https://wxcourse.jxufe.cn/wxlib/wx/appoint",
params:{
'isPeriod': 1,
'userId': "",//依旧是抓包获取
'appointType': 0,
'officeCode': "jxcjdx",
'colleageId': 51,
//添加加密后的字段
'info':""
}
};
运行
- 预约加密代码
-
预约成功