reverse-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok609hecl1pq6qi
2026-10-20 02:17:15 +03:00
commit da24c2bd20
2227 changed files with 443931 additions and 0 deletions

View File

@@ -0,0 +1,170 @@
# 开源/本地方案示例
本文件只给授权场景下的离线求解和诊断示例。真实网页点击、拖动、提交前必须回到 `references/verification-workflow.md` 做确认。
## 通用准备
建议先把证据整理成文件:
- 图片验证码:精确裁剪后的图片。
- 滑块:背景图、滑块图、轨道宽度、元素显示尺寸。
- 点选/九宫格/区域:完整截图、题面文本、元素边界。
- 音频:音频文件、语言、答案格式。
依赖示例:
```bash
python -m pip install ddddocr opencv-python pillow numpy
```
只在需要时安装对应库,不要把依赖路径写进 skill。
## `text`
开源优先:
1. 用 OpenCV 做灰度、二值化、降噪、去干扰线。
2. 用 ddddocr 或 Tesseract 识别。
3. 用字符集、长度、大小写规则约束结果。
示例思路:
```python
import ddddocr
ocr = ddddocr.DdddOcr(show_ad=False)
with open("captcha.png", "rb") as f:
text = ocr.classification(f.read())
print(text)
```
适合切到平台的情况:扭曲强、背景噪声强、字符粘连、样本通过率低。
## `math`
流程:
1. 按 `text` 识别表达式。
2. 归一化 `x/X/×` 为 `*`,`÷` 为 `/`。
3. 只允许数字、括号和基础运算符进入安全求值。
输出必须包含原始 OCR、归一化表达式和结果。遇到歧义时不要猜。
## `slider`
开源优先:
1. 先确认图片模式:双图、单图、canvas。
2. 双图优先用 ddddocr `slide_match` 或 OpenCV 模板/边缘匹配。
3. 单图用缺口边缘、局部对比、差分或 VLM 辅助。
4. 用 `scripts/map_coordinates.py` 把图片偏移换算成 DOM/CSS 坐标。
5. 用 `scripts/generate_motion_track.py` 生成滑块轨迹 JSON。
示例思路:
```python
import ddddocr
det = ddddocr.DdddOcr(det=False, ocr=False, show_ad=False)
with open("target.png", "rb") as f:
target = f.read()
with open("background.png", "rb") as f:
background = f.read()
print(det.slide_match(target, background))
```
注意:视觉偏移正确不等于验证一定成功;厂商可能绑定行为采集、challenge id、浏览器状态或加密参数。
## `click-select`
开源优先:
1. OCR/VLM 解析题面,保留原始顺序词。
2. 文字点选用 OCR + 模板/轮廓定位。
3. 物体点选用 YOLO/目标检测、CLIP/VLM 或模板匹配。
4. 输出截图坐标和元素相对坐标。
需要多轮时,每轮单独保存题面和截图。
## `rotate`
开源优先:
1. 用 OpenCV 主方向、特征匹配或边缘方向估计角度。
2. 用 VLM 做正向判断复核。
3. 按轨道宽度和角度范围换算拖动距离。
输出角度、轨道宽度、换算公式、固定偏移和置信度。
## `grid`
开源优先:
1. 分割格子,记录每格边界和中心点。
2. 用题面选择分类器:YOLO、CLIP、VLM 或专用图片分类模型。
3. 返回格子编号、中心坐标和每格置信度。
reCAPTCHA/hCaptcha/AWS WAF 可能多轮,不要只保存最后一轮。
## `audio`
开源优先:
1. 提取音频文件。
2. 做降噪、音量归一化和静音裁剪。
3. 用 Whisper/faster-whisper 转写。
4. 用答案格式做数字/字符纠错。
示例依赖:
```bash
python -m pip install faster-whisper
```
不要处理电话语音 OTP、短信、邮箱或 MFA。
## 图像/坐标类组合
这些类型通常共享一组能力:
- `drag-drop`:目标检测源对象和目标区域,再生成拖放轨迹。
- `trace-draw`:OpenCV 提取路径,骨架化后重采样成点列。
- `scratch`:生成覆盖轨迹,观察刮开前后状态。
- `image-restore`:先判断是否为切片乱序;页面顺序优先,图片边缘/纹理匹配次之。
- `area-select`:检测/分割/SAM/YOLO/VLM 输出框或多边形。
- `difference-click`:图像配准后差分定位。
- `font-identify`:OCR 内容 + 字形特征或 VLM 字体关系判断。
- `semantic-reasoning`:目标检测 + 关系推理或 VLM。
优先输出离线坐标和置信度;真实页面操作前必须确认。
## `image-restore` 切片乱序
当图片被分割成多块后顺序打乱时,保持主类型 `image-restore`,补充 `captcha_variant: tile-scramble`。第一版优先使用 `scripts/analyze_tile_restore.py`:
```bash
python scripts/analyze_tile_restore.py --image scrambled.png --rows 3 --cols 3 --order-source-by-target "1,2,0,4,5,3,7,8,6" --output-image restored.png --pretty
```
处理顺序:
1. 页面逻辑优先:从 `tileOrder`、`pieceOrder`、`sliceOrder`、CSS `background-position`、sprite、canvas `drawImage` 或接口字段还原每个目标位置对应的来源切片。
2. 只有图片时:按 `rows/cols` 或 `tile-width/tile-height` 切片,用左右/上下边缘连续性、颜色/纹理连续性、特征点匹配或 VLM 得到候选顺序。
3. 输出 `order_source_by_target`、`confidence`、`restore_strategy` 和还原图;低置信度时不要硬猜。
4. 如果还原结果还要换算拖动距离或交换动作,再回到 `references/motion-and-coordinate.md` 处理坐标和轨迹。
边界:
- 普通九宫格选择题是 `grid`,不是切片乱序。
- 普通缺口滑块是 `slider`,不是切片乱序。
- 纯色块、重复纹理、随机裁剪或顺序字段加密时,本地边缘匹配通过率会低,应切人工/平台复核或厂商授权测试环境。
## `pow-challenge`
PoW 类不是图片识别题。对 ALTCHA、FriendlyCaptcha、Cap.js、mCaptcha 等:
1. 阅读官方接入方式。
2. 检查 challenge、payload、difficulty、nonce、TTL、防重放和服务端签名。
3. 自有系统优先修正集成和校验逻辑。
不要把 PoW 当成 OCR 或滑块任务。