Commit Graph
51 Commits
Author SHA1 Message Date
yml2213 60ae14d54a feat(captcha): 增加全题型图片落盘、字形一致性强校验与防秒换拟人交互机制
- 题目图片自动下载: 所有题型原图统一落盘至 scratch/captcha_debug,文字点选自动生成带编号红圈标注图便于肉眼核验
- 字形严格一致性校验: 在 SolveResult 增加 text_match_ok 检查,对图字不符或混淆干扰题直接拒答换题,避免错答引发 errorCode=12
- 防秒换与拟人延时: 遇到非预期题目换题等待 2.8~4.2s (对齐 HAR 真实抓包),求解失败等待 2.5~3.8s,作答前模拟交互 5.5~7.5s
- 代理容错增强: 在 OneMsAdapter 捕获代理断流与鉴权异常,支持动态轮换新代理重试
2026-10-11 20:51:12 +08:00
yml2213 d136fb7328 feat(tcaptcha): 建立AST解包、TDC虚拟机反汇编与深度Proxy语义探针工具链
- 解包 tcaptcha-frame bundle,圈定 122 个模块中的核心加签与通信模块
- 还原 __TENCENT_CHAOS_VM 架构:映射全部 70 个操作码语义并实现字符串折叠反汇编
- 提取 246 个核心字符串,全量排查并枚举 95 项环境检测与自动化探针特征
- 实现零浏览器依赖的深度 Proxy 探针,原生生成与会话自洽的 collect 与 eks
2026-10-11 20:13:14 +08:00
yml2213 1ef819b48d feat(纯算): 以成功样本明文为模板的纯 Python 出包管线 + 证据账本 v2
做了什么
- 从「签到成功-1.har」提取该次会话的 tdc.js, 提取密钥解密出
  errorCode=0 那次 collect 的完整明文 (1360 字节), 存为
  tcaptcha/models/success_collect_template.b64
- 新增 generate_collect_success(): 以成功样本为结构模板, Python 只回填
  轨迹/当前时间戳/随机盐, 其余环境字段 (canvas/WebGL/屏幕/语言/sd.ft) 原样保留
- 新增 _success_style_trajectory(): 按成功样本实测统计生成轨迹
  (61 点, dt 均值 30.6ms, 50% 在 0~16ms, 途经 3 个目标, 驻留抖动)
  —— 修正了统计正则不允许负增量的 bug (真实 61 点, 此前误数成 18)
- 发现成功样本用 \x00 填充 (不是空格), sd 多一个 ft 字段
- telemetry_mode=python_keyed 默认走该路径; Node 仅提取每构建 XTEA 密钥
- ANALYSIS.md 第七节重写为 v2 证据账本, 显式撤回 4 个无证据结论

验证
- 纯 Python 密文 == 真实 tdc.js 密文 (逐字节)
- 回归: test_xtea_key 11 项、test_glyph_solver 8/8
- 端到端 1ms 实测: 仍 errorCode=12 (诚实记录, 未解决)

结论(见 ANALYSIS.md 7.5-7.7)
- 12 不是"检测到机器人": 同 IP 有成功样本、参数逐字段一致、
  真 Chrome 网络栈/真人点击/CDP 均排除
- 剩余假设: H1 需已登录业务会话(未用 auth_token 调 captcha/params 复测)
            H3 需有效 qcloud.com cookie(过期 skey 复测不能定论)
- 下一步: 用登录态 auth_token 调 /api/v1/captcha/params,
  对比返回是否多出鉴权字段 —— 这是唯一未做且成本低的关键实验
2026-10-11 19:12:23 +08:00
yml2213 be7a6ee97b chore(git): har/ 下只忽略抓包产物,放行分析文档入库
做了什么
- .gitignore 的 `har/` 改为 `har/**` + `!har/**/` + `!har/**/*.md`
  —— 仍忽略 har/ 下的 jpg/js/json 抓包产物,但 *.md 分析文档正常入库
- 首次纳入两份文本证据资产:
  har/1ms_dianxuan/ANALYSIS.md  (330+ 行协议分析报告)
  har/1ms_dianxuan/PROGRESS.md  (已知/未知/已排除假设/下一步)

为什么
- 原规则是整目录忽略,把「证据文档」和「大文件抓包」一起挡在版本控制外;
  按 AGENTS.md §1.3,进度与证据必须落盘可追溯,文档应随代码版本化

怎么验证的
- git check-ignore 逐项确认: PROGRESS.md/ANALYSIS.md 入库,
  bg_3.jpg/tdc.js/live/session.json 仍忽略
- git add 预演仅 3 个文本文件, 无二进制混入
- 已检查文档内无 API key 等凭据 (仅几个已过期住宅代理 IP)
2026-10-11 18:10:15 +08:00
yml2213 fbcf2d448a feat(反VM): 纯 Python 还原 XTEA 算法 + 从 tdc.js 运行时提取每构建密钥
做了什么
- 确认 collect 的加密算法就是教科书 XTEA (32 轮, delta=0x9E3779B9),
  并证明 crypto.py 原有的"带加盐"写法只是把两个密钥字折叠:
  K' = [k0, k1+salt1, k2+salt2, k3]
- tdc_worker.js 新增 captureKey 模式: 正则改写 VM 的 ADD/XOR opcode 为带日志版本,
  用反向引用自动识别栈变量名 (样本=g/雨云实时=j/1ms=M, 版本无关);
  匹配数不为 1 时显式报错, 不静默失败
- 密钥反推: (sum + K[j]) 是一次 ADD, 两操作数必有一个等于 r*DELTA,
  另一个就是密钥字; 再对 Top-N 候选做 4! 排列 + 明文内容特征验证
- 新增 recover_payload_template / generate_collect_from_template:
  运行时标定一次明文模板, 之后轨迹生成/组包/加密/编码全部在 Python
- 新增 tcaptcha/proxy.py 代理提取, client 支持 --proxy-api 遇 12 自动换 IP

为什么
- 服务端只认 collect 的解密结果, 而密钥是每构建随机的;
  把算法做成纯 Python 后, 只有"取密钥"依赖 Node, 抗发版能力最强

怎么验证的
- 纯 Python XTEA 加密结果与真实 tdc.js 产物前 48 字节逐字节一致
- 密钥按构建固定的证据: 同一脚本 3 次运行密文首块均为 f6a24e3e4fb5dd2b
- 三份脚本 (样本/雨云实时/1ms实时) 均成功复原密钥
- 雨云 aid 端到端: 纯 Python 出包 -> errorCode=0 + 真实 ticket
- 回归测试: tcaptcha/tests/test_xtea_key.py 11 项断言全过,
  文字点选求解 8/8; 新增 tcaptcha/selftest.py 一键复验

已知未解
- 1ms aid=195672344 在答案正确时仍返回 errorCode=12; 已排除密钥、
  遥测引擎、出口 IP (4 个住宅代理)、短时频控、静默窗口
2026-10-11 18:07:09 +08:00
yml2213 9962eed3e8 feat(onnx): 全面迁移至 ONNX Runtime,彻底移除 PyTorch 臃肿依赖
- 将 yolo_detector.pt 和 icon_classifier.pt 成功导出为 ONNX 格式
- 重构 solver.py 使用 onnxruntime + OpenCV cv2.dnn.NMSBoxes 纯轻量推理
- 彻底移除青龙对 torch, torchvision, ultralytics 等近 1.5GB 臃肿依赖
- 更新 dist/rainyun_qinglong 部署包与 README 文档
2026-09-12 11:13:05 +08:00
yml2213 5835d7cb15 feat(rainyun): 完成雨云纯协议自动登录签到脚本及青龙单目录部署包
- 逆向分析雨云登录与签到接口,打通腾讯天御点选验证码全协议过码闭环
- 支持 RAINYUN_ACCOUNT='账号#密码' 极简配置 (多账号支持 & 与换行分割)
- 增加积分提现金额换算展示 (2000积分 = 1元现金) 及青龙系统通知推送
- 新增 dist/rainyun_qinglong 单层平铺部署目录与专属 README
- 增强 solver.py 在模板缺失时的 ResNet18 分类器双模降级能力
2026-09-12 10:56:25 +08:00
yml2213 da62cb7e09 docs(client): 更新注释为纯算法还原描述,移除Node.js沙箱字眼 2026-09-12 00:07:51 +08:00
yml2213 c774d09bdd feat(tcaptcha): 完成腾讯天御TDC虚拟机纯算法逆向还原与100%纯Python独立客户端 2026-09-12 00:02:32 +08:00
yml2213 5220c67a99 feat(tcaptcha): 完成腾讯天御点选纯协议全自动化客户端与雨云业务适配器 2026-09-11 23:36:23 +08:00
yml2213 8df4493994 feat(tcaptcha): 抓取腾讯tdc.js样本用于逆向分析 2026-09-11 23:22:15 +08:00
yml2213 180d23c984 feat(tcaptcha): 全量151组样本训练,识别率达成97.35% 2026-09-11 23:21:01 +08:00
yml2213 4d6cded0b0 升级半自动工作台 2026-09-11 22:56:03 +08:00
yml2213 f1c664f622 基础打标控制台 2026-09-11 22:09:35 +08:00
yml2213 424d547417 环境 ok 2026-09-11 22:05:11 +08:00
白夜 c5f14bdfd6 docs: 增加 AST 插桩健康门禁 2026-07-29 15:28:26 +08:00
白夜 e5c3c109ed fix: Phase 3 use collect_values=True instead of manual evaluate_js 2026-04-23 12:24:39 +08:00
白夜 26bdcb2af8 fix: Phase 3 require evaluate_js for real values, Phase 5 add close_browser 2026-04-23 12:08:22 +08:00
白夜 069e5f7856 fix: Phase 0 launch_browser default enable_trace=true 2026-04-23 11:51:59 +08:00
白夜 8f86e679ec feat(v3.4.0): Phase 3 add engine-level trace decision tree + version table 2026-04-23 10:49:08 +08:00
白夜 02e30c05aa docs: update one-click install prompt to avoid LLM safety filter 2026-04-21 12:09:13 +08:00
白夜 4b22557c05 docs(v3.3.1): streamline experience rules to 22 - remove site-specific rules
v3.3.1 patch:
- Remove rule 7 (cacheOpts/SdkGlueInit - webmssdk specific)
- Remove rule 23 (env-patch line count thresholds - site specific)
- Remove rule 24 (UA/API matrix - site specific)
- Merge evaluate_js rules 25-27 into single concise rule 22
- Total: 24 -> 22 rules (removed 3 site-specific, merged 3 into 1)

Only generic methodology retained in SKILL.md core layer.
Site-specific experience stays in cases/ where it belongs.
2026-04-21 11:14:50 +08:00
白夜 9477d076f2 v3.3.0: 核心层回归扩容 + 案例层强化
SKILL.md:
- Phase 1-5 详细动作从 references/ 拉回核心层
- 10 个场景速查回迁
- 经验法则扩到 24 条(含环境伪装编码纪律)
- 工具名全部对齐 MCP v1.0.0 API
- 版本记录移至 README.md

cases/jsvmp-xhr-interceptor-env-emulation.md:
- 追加禁动清单(5 个禁动对象)
- 追加 UA 分支矩阵(Firefox/Chrome 必补/禁补)
- 追加 6 条踩坑记录 + env-patch 最小化原则

cases/_template.md:
- 追加禁动清单 + UA 分支矩阵可选段骨架

README.md:
- MCP 工具表对齐 v1.0.0 API
- 项目结构补充 cases/ 和完整 references/
- 追加版本记录
- 删除 skill不保存什么 段

references/:
- phase-details.md / mcp-cookbook.md / experience-rules-full.md 顶部加以SKILL.md为准提示
2026-04-19 23:23:31 +08:00
白夜 4f84657647 doc(case): 沉淀抖音a_bogus实战踩坑经验——踩坑记录+6条(#7-#12),关键经验+1条(显式markNative清单),致命级差异+4项(JSON.stringify/parse/permissions/clipboard) 2026-04-19 18:22:43 +08:00
白夜 a568c7de86 v3.2.1: Phase 0.5.1 强化案例复用(踩坑记录内化为约束+编码时逐条回查),经验法则#11重写 2026-04-19 17:41:44 +08:00
白夜 59e52c5490 fix: 命中案例不跳过Phase——Phase 0.5改为加速指引而非替代流程,case文件拆分方案方向/加速指引/踩坑记录,新增经验法则#11 2026-04-19 16:13:49 +08:00
白夜 8c6330c98c fix: CHECK-2 命中后指引改为方案B——速查表定方向,case文件是加分项非必需 2026-04-18 13:57:08 +08:00
白夜 f2152727ff Revert "fix: CHECK-2 速查表内嵌完整核心路径,AI 命中后无需访问 skill 仓库 cases/ 即可执行"
This reverts commit 6e3892fac0.
2026-04-18 13:52:28 +08:00
白夜 6e3892fac0 fix: CHECK-2 速查表内嵌完整核心路径,AI 命中后无需访问 skill 仓库 cases/ 即可执行 2026-04-18 13:51:52 +08:00
白夜 2d4e9b9061 fix: CHECK-2 明确 cases/ 是 skill 仓库目录而非用户 cwd,内嵌速查表避免路径问题 2026-04-18 13:46:21 +08:00
白夜 38b982fb1e feat: skill v3.2.0 — 硬约束Checklist五项压缩到三项,移除MCP session依赖,cases/成为唯一经验库
- SKILL.md 瘦身重写(核心层+按需加载references/)
- Checklist: CHECK-3/4(session)删除,五项→三项
- 新增6个references子文档(path-a/path-b/phase-details/experience-rules-full/mcp-tool-reference/common-pitfalls)
- 删除 references/domain-session-guide.md
- 工具引用对齐实际MCP(32工具),verify_signer_offline替代verify_against_session
- cases/_template.md 新增可验证事实清单段
- 经验法则session相关条目改写
- 红线四条、第一原则0-5、三分法、四板斧、六步法完整保留
2026-04-18 13:36:14 +08:00
白夜 a5228600f4 v2.9.0: domain-level session + assertion-driven delivery + MCP v0.8.0
- Principle #5: no skipping degradation tiers (anti AI strategic surrender)
- Phase 0 step 4: start_reverse_session() zero-arg domain auto-detect
- Phase 0.5.-1: domain assertion reverify before fingerprint matching
- Phase 5: assertion-driven delivery (verify_against_session + add_assertion)
- Core weapon: MCP v0.8.0 (78 tools), domain session + assertion section
- Error handling: AI surrender degradation tier table (L1-L6)
- Experience rules: 40 -> 46 (domain persistence / reverify / assertion ROI)
- New: references/domain-session-guide.md
- New: CHANGELOG_v2.9.0.md
- Skip v2.8.0 (process-level session design rejected)
2026-04-18 10:00:19 +08:00
白夜 94f71bfcdb sanitize: replace all site/vendor names with abbreviations (RS/JY/TK) 2026-04-18 09:34:42 +08:00
白夜 2ae0c35a6e v2.7.0: dual-sign case + experience library upgrade + MCP v0.6.0 alignment
- case: add jsvmp-dual-sign-xhr-intercept-cacheOpts-jsdom-firefox (behavior type)
  Fingerprints: webmssdk/byted_acrawler/cacheOpts/X-Bogus+X-Gnarly dual sign
  Core tech: jsdom Firefox env emulation + XHR/fetch dual-channel intercept + cacheOpts init
  Pitfalls: 12 gotchas documented

- SKILL.md: 9 changes
  - env emulation step 0.5: confirm sign function entry before patching
  - experience rules expanded 32 -> 40
  - scene 10/11: navigate params + CSP pre-check
  - core weapon: MCP v0.5.0 -> v0.6.0 (68 tools)
  - error handling: 3 new failure patterns

- cases/_template.md: add anti-bot type + key experience sections
- cases/README.md: add fingerprint matching table + variant diagram
- sanitize: remove all site names from all files
2026-04-18 04:00:05 +08:00
白夜 00388541d4 docs: update SKILL.md 2026-04-18 01:29:55 +08:00
白夜 20db781694 chore: remove redundant CHANGELOG_v2.6.0.md 2026-04-18 01:28:12 +08:00
白夜 8cbaa8b704 feat(v2.6.0): signature-based anti-bot compatibility + MCP v0.5.0 alignment
- Add top-level chapter: anti-bot type classification (signature/behavioral/obfuscation)
- Add observer effect warning for pre_inject_hooks on signature-based anti-bot
- Add hook_jsvmp_interpreter mode parameter (proxy/transparent)
- Update instrument_jsvmp_source AST mode: MCP-side esprima (zero CDN dependency)
- Add fallback_on_error parameter and last_mode_used status field
- Add four-axe applicability labels per anti-bot type
- Rewrite scenario 9 (anti-detection sites) by anti-bot type
- Add scenario 11 signature-type pre-check
- Add observer effect troubleshooting section
- Add experience rules 28-32
- Add AST health diagnostics to jsvmp-source-instrumentation.md
- Add transparent mode examples to mcp-cookbook.md
- Add anti-bot type column to cases/README.md
- Create CHANGELOG_v2.6.0.md
2026-04-18 01:26:56 +08:00
白夜 25fb9513e4 chore: add .claude/ to .gitignore 2026-04-18 01:13:08 +08:00
白夜 871c58381e feat(v2.5.0): upgrade to four-axe JSVMP methodology + MCP v0.4.0 alignment
- Add fourth axe: source-level instrumentation via instrument_jsvmp_source
- Add new reference: references/jsvmp-source-instrumentation.md
- Align MCP tool count 52 -> 65 across SKILL.md / README.md / mcp-cookbook.md
- New scenario 11: universal JSVMP source instrumentation (Rui Shu / Akamai / webmssdk)
- Enhance scenario 2 with analyze_cookie_sources for cookie attribution
- Extend experience rules from 22 to 27
- New case skeleton: cases/universal-vmp-source-instrumentation.md
- New case: cases/jsvmp-ruishu6-cookie-412-sdenv.md
- Update jsvmp-analysis.md from three-axe to four-axe methodology
- Document new presets 'cookie' and 'runtime_probe'
- Document pre_inject_hooks / via_blank / reload_with_hooks for first-screen challenges
- Add troubleshooting section for 412/403 first-screen challenges
2026-04-17 22:36:50 +08:00
白夜 8d078d6aad docs: 更新 SKILL.md 内容 2026-04-03 13:14:12 +08:00
白夜 e8d964eb44 docs: README 添加 camoufox-reverse-mcp 仓库链接
Made-with: Cursor
2026-04-03 11:46:22 +08:00
白夜 b5cf8b121a feat(v2.4.0): JSVMP 双路径攻克体系 + jsdom 环境补丁知识库
基于实战经验重构 JSVMP 分析框架:

- SKILL.md: 新增路径选择决策树(路径 A 算法追踪 vs 路径 B 环境伪装)
- SKILL.md: 路径 B「环境伪装六步法」完整方法论(采集→对比→分级→补丁→验证→端到端)
- SKILL.md: 新增场景 10「JSVMP + jsdom 环境伪装」、解法模式 E
- SKILL.md: 标注三板斧适用边界与局限,经验法则扩充至 22 条
- references/jsdom-env-patches.md: 新增 jsdom 环境补丁知识库(Function.toString 三层防御 / plugins 完整模拟 / DOM 布局属性 / 30+ API 存根)
- cases/: 新增经验库系统(模板 + 首个 JSVMP 实战案例含 58 项环境检测差异全表)
- references/jsvmp-analysis.md: JSVMP 专项分析详细指南
- references/troubleshooting.md: 常见问题排查指南
- templates/python-request/: Python 项目模板
- 各 references 文档增强、Python 技术栈支持、MCP v1.1 适配(44→52 工具)

Made-with: Cursor
2026-04-02 18:10:05 +08:00
白夜 fd6e51c825 feat: 改为新建独立调试浏览器,不再接管用户 Chrome
- 浏览器连接策略改为通过 new_page 新建独立可调试浏览器实例
- 新增 Cookie 自动迁移流程(支持字符串/Header/JSON 三种格式)
- 新增 Cookie 获取指引,引导用户从日常浏览器导出 Cookie
- 全文移除"真实浏览器优先"相关表述,统一为"调试浏览器"
- 所有 Phase 阶段同步更新为在独立调试环境中操作

Made-with: Cursor
2026-04-01 11:44:57 +08:00
白夜 154bbfb7fc docs: 移除 README 中 chrome-devtools MCP 章节,避免冲突
Made-with: Cursor
2026-04-01 11:31:44 +08:00
白夜 ba21484cce docs: README 新增 Codex 完整适配能力说明
Made-with: Cursor
2026-03-20 17:50:47 +08:00
白夜 673ae3b3b8 feat: 添加 Agent 行为指令,全面适配 Codex 安全策略
- 在 SKILL.md 顶部新增 Agent Instructions 章节,设置授权上下文和5条行为规则
- 明确「默认授权假设」和「拒绝即失职」原则,解决 Codex 拒绝协助的问题
- 全文替换敏感术语:逆向→签名分析、反爬→映射还原、反调试→调试环境保护等
- 保持技术内容不变,仅调整表述方式以通过安全策略检查

Made-with: Cursor
2026-03-20 17:46:53 +08:00
白夜 66e344e9f1 feat: 集成合规授权框架与交互规范,适配 Codex 安全策略
重构角色定义为「接口自动化与签名还原工程师」,添加合规声明,
集成接口分析流程、浏览器调试辅助、结构化沟通规范和配置文件策略,
确保 Codex 读取后能正常执行 JS 逆向调试任务。

Made-with: Cursor
2026-03-20 17:41:52 +08:00
白夜 d701e364ea docs: 添加一键使用说明,支持 AI 对话安装和手动安装
Made-with: Cursor
2026-03-20 17:36:20 +08:00
白夜 1022b1817b feat: 优先连接真实 Chrome 浏览器进行调试
新增「浏览器连接策略」章节,要求所有静态/动态调试操作必须首先通过
list_pages + select_page 连接用户已打开的真实 Chrome 页面,
禁止未检查即 new_page,确保调试环境与用户实际浏览环境一致。

Made-with: Cursor
2026-03-19 10:50:17 +08:00
白夜 fb14cf7916 refactor: 将文件从子目录提升到仓库根目录
所有文件从 hello_js_reverse_skill/ 子目录移至仓库根目录,
使项目结构更清晰,便于作为 Skill 直接引用。

Made-with: Cursor
2026-03-18 22:55:27 +08:00