- 订阅 Surge 模块
https://gist.githubusercontent.com/JamesHopbourn/8ad3cb5e89abb810b0021a3cd3c630a3/raw/TodaySchool.sgmodule
- 下载需要的捷径根据提示操作
- 运行捷径,根据提示操作即可
mock regeop.js
https://dualstack-restios.amap.com/v3/geocode/regeo.*
// https://ptu.campusphere.net/wec-counselor-leave-apps/leave/stu/detailOther | |
let body = $request.body; | |
body=JSON.parse(body); | |
body.deviceId = "36FA09E6-771C-47B5-9CA4-3B6299A2D78E"; | |
body=JSON.stringify(body); | |
$done({body}); |
body = JSON.stringify({ | |
"code": "0", | |
"message": "SUCCESS", | |
"datas": { | |
"condition": { | |
"allowWithdraw": 1, | |
"reportTutorialUrl": "", | |
"reportTutorialTitle": "如何销假?", | |
"shutDown": false | |
}, | |
"isReport": "1", | |
"isExtend": "1", | |
"isAllowedExtend": true, | |
"leaveType": { | |
"id": "", | |
"code": 2, | |
"mustOut": 0 | |
}, | |
"detail": { | |
"userId": "${学号}", | |
"userName": "${名字}", | |
"dormitoryInfo": "${宿舍信息}", | |
"gender": "1", | |
"leaveType": "${请假类型}", | |
"startTime": "${开始时间}", | |
"endTime": "${结束时间}", | |
"outStatus": true, | |
"pressStatus": false, | |
"urgencyMobile": "${联系人电话}", | |
"approverName": "${辅导员名字}", | |
"leaveReason": "${请假原因}", | |
"status": "2", | |
"approverOpinion": "", | |
"createTime": "", | |
"isOverdue": true, | |
"dstStatus": "6", | |
"mustOut": 0, | |
"sex": "${性别}", | |
"totalDays": "${请假时长}", | |
"logInfos": [ | |
{ | |
"status": "1", | |
"createTime": "" | |
}, | |
{ | |
"status": "3", | |
"createTime": "" | |
} | |
], | |
"approvers": [ | |
{ | |
"level": null, | |
"status": "1", | |
"handled": true, | |
"createTime": "${过审时间}", | |
"approver": { | |
"userName": "${名字}" | |
}, | |
"approveNode": [ | |
{ | |
"status": "1", | |
"createTime": "", | |
"approvers": [] | |
} | |
] | |
}, | |
{ | |
"level": "1", | |
"status": "3", | |
"handled": true, | |
"createTime": "${过审时间}", | |
"delayStatus": false, | |
"approveOption": "${审批意见}", | |
"approver": { | |
"userName": "${辅导员名字}" | |
}, | |
"approveNode": [ | |
{ | |
"nodeWid": "1003", | |
"nodeType": "1", | |
"nodeName": "辅导员", | |
"nodeIndex": "0", | |
"approverName": "${辅导员名字}", | |
"status": "3", | |
"approveOption": "", | |
"delayStatus": false, | |
"createTime": "", | |
"approvers": [ | |
{ | |
"userName": "${辅导员名字}" | |
} | |
] | |
} | |
] | |
} | |
], | |
"leaveCreateTime": "", | |
"locationType": 0, | |
"applyLocation": { | |
"locationType": 0, | |
"address": "${学校地址}", | |
"longitude": "", | |
"latitude": "" | |
}, | |
"disclaimers": "本人承诺填写的信息真实有效,并对本次提交请假申请的信息真实性负责。", | |
"destination": "${请假去向}" | |
}, | |
"termination": { | |
"allowTerminate": 0, | |
"terminated": 0, | |
"terminationObjectName": null, | |
"terminationReason": null, | |
"terminationDate": null | |
}, | |
"notOutReport": { | |
"setedNotOutReport": 1, | |
"rule": 0, | |
"operatorName": "ampadmin", | |
"operatorDate": "${开始时间}:48" | |
}, | |
"studentInfo": { | |
"userId": "${学号}", | |
"userName": "${名字}", | |
"gender": 1, | |
"grade": "${入学年份}", | |
"dept": "${所属院系}", | |
"major": "${就读专业}", | |
"cls": "${就读班级}", | |
"dorm": "${宿舍信息}" | |
}, | |
"recordStatus": "6", | |
"nowTime": "" | |
} | |
}); | |
$done({body}); |
body = JSON.stringify({ | |
"code": "0", | |
"message": "success", | |
"datas": { | |
"totalSize": 1, | |
"pageSize": 20, | |
"pageNumber": 1, | |
"allowApply": 1, | |
"allowPcApply": 0, | |
"rows": [ | |
{ | |
"id": "e22154791b3c46e2b251e2a9fce957b7", | |
"leaveType": "${请假类型}", | |
"createTime": "${开始时间}", | |
"startTime": "${开始时间}", | |
"endTime": "${结束时间}", | |
"totalDay": 1, | |
"status": "2", | |
"expireDay": null, | |
"isExtend": "0", | |
"applyTime": "", | |
"out": "1", | |
"leaveTime": "${请假时长}", | |
"startTimePC": "", | |
"endTimePC": "", | |
"leaveReason": "", | |
"shutDown": false, | |
"actEndTime": "", | |
"actEndTimeDesc": "", | |
"actStatus": "6", | |
"isEarlyEnd": "" | |
} | |
] | |
} | |
}); | |
$done({body}); |
{ | |
"status": "1", | |
"regeocode": { | |
"addressComponent": { | |
"streetNumber": { | |
"number": "806号", | |
"street": "学园中街" | |
}, | |
"country": "中国", | |
"city": "莆田市", | |
"province": "福建省", | |
"adcode": "350302", | |
"district": "城厢区", | |
"citycode": "0594" | |
}, | |
"aois": [{ | |
"name": "莆田学院学园校区体育学院" | |
}], | |
"pois": [{ | |
"name": "莆田学院学园校区体育学院" | |
}] | |
}, | |
"info": "OK", | |
"infocode": "10000" | |
} |
body = JSON.stringify({ | |
"message": "SUCCESS", | |
"datas": { | |
"detail": { | |
"approvers": [ | |
{ | |
"status": "1", | |
"handled": true, | |
"approver": { | |
"userWid": null, | |
"userId": null, | |
"userName": "${名字}" | |
}, | |
"level": null, | |
"approveType": null, | |
"approveOption": null, | |
"createTime": "${过审时间}", | |
"approveNode": [ | |
{ | |
"nodeIndex": null, | |
"approveWid": null, | |
"nextNodeIndex": null, | |
"flowWid": null, | |
"nodeType": null, | |
"approverName": null, | |
"approveType": null, | |
"approveOption": null, | |
"approverWid": null, | |
"nextApproverIndex": null, | |
"nodeWid": null, | |
"nodeName": null, | |
"approvers": [ | |
], | |
"delayStatus": null, | |
"approverId": null, | |
"status": "1" | |
} | |
] | |
}, | |
{ | |
"status": "1", | |
"handled": true, | |
"approver": { | |
"userWid": null, | |
"userId": null, | |
"userName": "${辅导员名字}" | |
}, | |
"level": "1", | |
"approveType": null, | |
"approveOption": "${审批意见}", | |
"createTime": "${过审时间}", | |
"approveNode": [ | |
{ | |
"nodeIndex": "0", | |
"approveWid": null, | |
"nextNodeIndex": null, | |
"flowWid": null, | |
"nodeType": "1", | |
"approverName": "${辅导员名字}", | |
"approveType": null, | |
"approveOption": "${审批意见}", | |
"approverWid": null, | |
"nextApproverIndex": null, | |
"nodeWid": "1003", | |
"nodeName": "辅导员", | |
"approvers": [ | |
{ | |
"userWid": null, | |
"userId": null, | |
"userName": "${辅导员名字}" | |
} | |
], | |
"delayStatus": null, | |
"approverId": null, | |
"status": "2" | |
} | |
] | |
} | |
], | |
"address": "${发起位置}", | |
"returnStartTime": "${开始时间}", | |
"confirmType": 1, | |
"confirmReason": null, | |
"trafficCode": "", | |
"addValueVos": [], | |
"setoutAddress": "${出发地点}", | |
"leaveType": null, | |
"applyAttach": [ | |
{ | |
"type": "1", | |
"url": "${图片一}" | |
}, | |
{ | |
"type": "1", | |
"url": "${图片二}" | |
}, | |
{ | |
"type": "1", | |
"url": "${图片三}" | |
} | |
], | |
"sex": null, | |
"longitude": null, | |
"userWid": null, | |
"studentMobile": null, | |
"approverName": null, | |
"approverOpinion": "${审批意见}", | |
"returnEndTime": "${结束时间}", | |
"approverId": null, | |
"status": "2", | |
"flowWid": 3421, | |
"isReturnSchool": "1", | |
"confirmAddress": "", | |
"gender": "1", | |
"createTime": null, | |
"trafficWay": "${交通工具}", | |
"wid": "49631", | |
"supplyReason": "${申请原因}", | |
"approverWid": null, | |
"logInfos": [], | |
"userName": null, | |
"confirmLongitude": null, | |
"locationType": "0", | |
"confirmPeople": null, | |
"userId": null, | |
"confirmLatitude": null | |
}, | |
"allowWithdraw": "0", | |
"nextApproveInfo": null, | |
"currentApprovers": [ | |
{ | |
"userWid": 1234, | |
"userId": "", | |
"userName": "${辅导员名字}" | |
} | |
], | |
"disableQr": null, | |
"studentInfo": { | |
"cls": null, | |
"major": null, | |
"dept": null, | |
"dorm": null, | |
"abnormalStatus": null, | |
"degree": null, | |
"userWid": null, | |
"userId": null, | |
"userName": null, | |
"grade": null, | |
"gender": null, | |
"photo": null | |
}, | |
"checkTimes": null | |
}, | |
"code": "0" | |
}); | |
$done({body}); |
// https://wecres.campusphere.net/counselor/attendance/\d+/attachment/[a-zA-Z0-9]+.png | |
$notification.post("今日校园", "点击保存照片", "", { | |
"url": "shortcuts://run-shortcut?name=" + encodeURI("保存查寝照片") + "&input=text&text=" + $request.url | |
}); | |
$done({}); |
const options = {year: 'numeric', month: '2-digit', day: '2-digit' }; | |
const date = new Date().toLocaleDateString('zh-CN', options).replace(/\//g, '-'); | |
let body = $response.body; | |
body=JSON.parse(body); | |
body.datas.currentTime = `${date} 22:30`; | |
body=JSON.stringify(body); | |
$done({body}); |
[Script] | |
list = type=http-response,script-path=Script/list.js,pattern=https://.*.campusphere.net/wec-counselor-leave-apps/leave/stu/list,max-size=131072,requires-body=true,timeout=10,enable=true | |
detail = type=http-response,script-path=Script/detail.js,pattern=https://.*.campusphere.net/wec-counselor-leave-apps/leave/stu/detail,max-size=131072,requires-body=true,timeout=10,enable=true | |
[Rule] | |
URL-REGEX,^https:\/\/mobile\.campushoy\.com\/v3\/version\/check\/.*,REJECT | |
[MITM] | |
hostname = *.campusphere.net, mobile.campushoy.com |
#!name= 今日校园 Hacking | |
#!desc= 今日校园提前签到,替换签到图片,保存签到图片,伪造请假表单 | |
[Rule] | |
URL-REGEX,^https:\/\/mobile\.campushoy\.com\/v3\/version\/check\/.*,REJECT | |
[Script] | |
# 请假单生成 | |
# 订阅模块只能使用 JavaScript 进行修改,如果是本地配置可以使用 Mock 实现 | |
list = type=http-response,pattern=https://.*.campusphere.net/wec-counselor-leave-apps/leave/stu/list,requires-body=1,script-path=list.js,max-size=0 | |
detail = type=http-response,pattern=https://.*.campusphere.net/wec-counselor-leave-apps/leave/stu/detail,requires-body=1,script-path=detail.js,max-size=0 | |
return = type=http-response,pattern=https://.*.campusphere.net/wec-counselor-return-school-apps/stu/detail,requires-body=1,script-path=return.js,max-size=0 | |
替换查寝自拍图片 = type=http-request,pattern=https://.*.campusphere.net/wec-counselor-attendance-apps/student/attendance/previewAttachment,requires-body=1,max-size=0,script-path=preview.js | |
单设备多人签到 = type=http-request,pattern=https://.*.campusphere.net/wec-counselor-attendance-apps/student/attendance/submitSign,requires-body=1,max-size=0,script-path=https://gist.githubusercontent.com/JamesHopbourn/8ad3cb5e89abb810b0021a3cd3c630a3/raw/UUID.js | |
签到图片下载利用 = type=http-request,pattern=https://wecres.campusphere.net/counselor/attendance/\d+/attachment/[a-zA-Z0-9]+.png,requires-body=1,max-size=0,script-path=https://gist.githubusercontent.com/JamesHopbourn/8ad3cb5e89abb810b0021a3cd3c630a3/raw/save_photo.js | |
签到开始时间 = type=http-response,pattern=https://.*.campusphere.net/wec-counselor-attendance-apps/student/attendance/detailSignInstance,requires-body=1,max-size=0,script-path=https://gist.githubusercontent.com/JamesHopbourn/8ad3cb5e89abb810b0021a3cd3c630a3/raw/start_time.js | |
[MITM] | |
hostname = %APPEND% *.campusphere.net, mobile.campushoy.com |
// https://.*.campusphere.net/wec-counselor-attendance-apps/student/attendance/submitSign | |
function getUUID() { | |
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | |
var r = (Math.random() * 16) | 0, | |
v = c == 'x' ? r : (r & 0x3) | 0x8; | |
return v.toString(16); | |
}); | |
} | |
let uuid = getUUID(); | |
let body = $request.body; | |
body=JSON.parse(body); | |
body.deviceId = uuid; | |
body=JSON.stringify(body); | |
$done({body}); |
// https://.*.campusphere.net/wec-counselor-attendance-apps/student/attendance/previewAttachment | |
let body = $request.body; | |
body=JSON.parse(body); | |
body.ossKey = "counselor\/attendance\/1021394143690382\/attachment\/f4ba16c5034645a78c45dcbb43c0c901.png"; | |
body=JSON.stringify(body); | |
$done({body}); |
// https://.*.campusphere.net/wec-counselor-leave-apps/leave/apply | |
let body = $request.body; | |
body=JSON.parse(body); | |
// 作弊标记 | |
body.cheatType = null; | |
// 设备 ID | |
body.deviceId = "771901e45b3d416883cea68d6b1835db"; | |
// iOS 版本 | |
body.appVersion = "9.3.8", | |
// 请假定位 | |
body.location = { | |
"deviceId": "36FA09E6-771C-47B5-9CA4-3B6299A2D78E", | |
"systemName": "iOS", | |
"systemVersion": "16.4", | |
"model": "iPhone12,1", | |
"address": "福建省莆田市城厢区福兴路", | |
"latitude": 25.44830129016314, | |
"longitude": 119.01337471208522 | |
} | |
// 定位类型 | |
body.locationType = 0; | |
body=JSON.stringify(body); | |
$done({body}); |