3z/captchafox-solver
GitHub: 3z/captchafox-solver
纯 Go 实现的无浏览器 CaptchaFox 验证码求解器,通过重放证明、求解工作量证明和滑动缺口检测来获取验证 token。
Stars: 0 | Forks: 0
CaptchaFox Solver
一个纯 Go 编写的 CaptchaFox 验证码求解器 —
支持证明重放、工作量证明以及滑动验证求解。
运行时路径中不使用任何浏览器。
GET /captcha/{sk}/config"] --> B["build_attestation
replay Chrome cs
+ per-user profile"] B --> C["challenge
POST /captcha/{sk}/challenge
cs + k"] C --> D{"token in
response?"} D -- yes --> T(("return
token")) D -- no --> E["solve proof-of-work
SHA-256 leading zeros"] E --> F["detect slide gap
dominant-color deviation
on background image"] F --> G["synthesize trail
ease-in-out + jitter"] G --> H["verify
POST /captcha/verify
sk, mv, t, p, h, cs, k"] H --> T ``` ## 工作原理 | 层级 | 实现方式 | | --- | --- | | **证明 (`cs`)** | 截获一次真实的 Chrome `CF0100`–`CF0148` 对象(在开发阶段,从运行 `paint.js` 的正版 Chromium 中获取);运行时以纯 Go 方式对其进行重放。基于用户的字段(屏幕、GPU、时区、核心数、语言、深色模式)通过 `AttestationProfile` 在每次调用时发生变化,因此每次求解都会呈现出一个独特且自洽的指纹。 | | **工作量证明** | 标准 SHA-256。寻找满足 `sha256(seed + nonce)` 十六进制值以 `N` 个前导零开头条件的最小 nonce。seed/难度从服务器发出的 worker 消息 `[tag, seed, difficulty_binary]` 中解码。 | | **滑动验证** | 通过主色列偏差(纯标准库 `image/png`)在背景图像中检测拼图缺口的左边缘,然后将其映射为 CSS 像素。合成类人移动轨迹(缓入缓出 + 抖动,最多 80 个采样点)。 | | **传输层** | 复现了自定义的 `text/plain` 正文编码(JSON → gzip → 添加前缀 `[0x01, 0x04]` → 逐字节 XOR)以及 `X-Pulse` 标头。 | ## 安装说明 ``` go build -o captchafox-solver . ``` 要求 Go ≥ 1.23。无外部依赖(纯标准库)。 ## 快速开始 ``` # Mint + 验证公共测试 token(端到端验证底层管线) captchafox-solver test # 针对 sitekey 进行求解(每次运行使用随机 profile) captchafox-solver solve --site-key sk_... # 仅探测 attestation 的接受情况 captchafox-solver solve --site-key sk_... --probe # 通过 siteverify 验证任意 token captchafox-solver verify --token TOKEN --secret ok_... --sitekey sk_... ``` ## 公共 API (Go) ``` import "github.com/3z/captchafox-solver/captchafox" client := captchafox.NewCaptchaFoxClient() solver := captchafox.NewCaptchaFoxSolver(client, "sk_...", "https://example.com/", "slide", "en", nil) token, err := solver.Solve(3) // max 3 retry attempts ``` | 符号 | 用途 | | --- | --- | | `CaptchaFoxSolver` | 端到端求解器:`Solve(maxAttempts)` → token,`Probe()` → 验证码响应。 | | `CaptchaFoxClient` | 底层协议客户端:`FetchConfig`, `Challenge`, `Verify`, `VerifyToken`, `GetTestToken`。 | | `BuildAttestation(site, profile)` | 构建 `cs` 证明对象;当提供 profile 时,会改变基于用户的字段。 | | `AttestationProfile` / `RandomAttestationProfile()` | 自洽的基于用户的指纹 profile 及其随机工厂。 | | `SolvePow(seed, difficulty)` | 工作量证明求解器。 | | `EncodePayload(payload)` | 自定义的二进制正文编码器。 | ## 包 | 包名 | 描述 | | --- | --- | | `captchafox/` | 求解器(PoW、编码、证明、客户端、滑动缺口检测、轨迹合成)。 | ## 公共测试密钥 CaptchaFox 发布了用于集成测试的、始终成功的测试密钥: ``` sitekey: sk_11111111000000001111111100000000 secret: ok_11111111000000001111111100000000 ``` ## 许可证 MIT — 见 [LICENSE](LICENSE)。
标签:EVTX分析, Golang, 云资产清单, 图像处理, 安全编程, 工作量证明, 日志审计, 网络调试, 自动化, 逆向工程, 验证码识别