2.9 KiB
2.9 KiB
验证码模式
适用目的
在目标涉及滑块、点选、旋转、行为校验、PoW 或 challenge/verify 协议时,用这份文档拆解线路。
一、先拆成 5 条线
不要把所有内容都写成“验证码逻辑”。先拆成:
- 初始化 / challenge 线
- 图像或题面识别线
- 参数 builder 线
- 环境 / 指纹 / collect 线
- 最终 verify 线
二、验证码常见字段
高频字段示例:
collectpow_answerpow_calc_timewfsac_cSignatureSignatureNoncecaptcha_collectbehaviortoken
判断它们是否真的重要,不看“像不像密文”,而看:
- 删除后是否失败
- 改动后是否失败
- 是否与识别结果、时间戳、环境值强绑定
三、5 类高频题型
1. 纯图像 + 轻参数
特征:
- 参数层较薄
- 识别结果最关键
推荐顺序:
- 保存原图和小图
- 先打通识别
- 再看 verify 如何装入识别结果
2. 图像 + 中等参数混合
特征:
- 既要识别,也要还原 builder
- 常见角度、距离、坐标和参数共同参与校验
推荐顺序:
- 先拆图像线
- 再跟最终 verify
- 对齐 builder 输入和中间 payload
3. 纯算 / 半纯算题
特征:
- 图像难度不高
- 轨迹、PoW、collect、signature 更重
推荐顺序:
- 先拆请求顺序
- 明确 token / challenge 来源
- 再分析签名或 PoW
- 最后微调轨迹或识别结果
4. JSVMP / 补环境题
特征:
- 大数组、解释器、环境读取多
- 入口在浏览器能跑,在本地容易报错
推荐顺序:
- 先从 verify 参数赋值点倒推
- 判断是值不对,还是入口直接报错
- 前者先插桩,后者先补环境
5. WebSocket / 分段协议题
特征:
- 不再是单条 XHR
- 请求和响应分多段
- 首包和验证包职责不同
推荐顺序:
- 先数包
- 标记首包、图片包、验证包
- 再拆 key 派生和加解密
四、验证码的统一检查点
每题至少保留这些检查点:
- 初始化请求参数
- 图片接口或题面返回值
- 识别结果
- 轨迹明文
- builder 输入对象
- builder 输出对象
- 浏览器发送值
- 本地生成值
五、轨迹和识别的通用提醒
轨迹
重点检查:
- 总时长是否合理
- 时间戳是否单调递增
- y 轴是否完全不动
- 末尾是否机械地精确对齐
识别
重点动作:
- 先把识别结果单独保存成中间值
- 不要把识别和网络请求死耦合
- 让识别输出作为 builder 的独立输入
六、什么时候不要急着做图像
如果 verify 失败的主因是:
- token/challenge 不对
- collect/signature 不对
- 环境值不对
先修参数链和环境链,再修图像线;否则容易在错误链路上重复调参。