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,308 @@
# 当前补环境草稿的遗漏点
这份文档不是重新讲补环境,而是专门检查当前 `H:\CodeSpace\AiReverse\Web\env\codex` 这套草稿资源还缺什么。
结论先说:
- 现在已经有“原型链 / native / 描述符 / navigator / document / storage / 指纹 / Proxy”的主骨架
- 但如果目标是未来真的做成可复用 skill,仍然缺一批高频检测点、配套脚本和验证资源
- 这些遗漏里,最关键的不是再补几个字段,而是补“跨对象关系、异步对象、网络对象、时序与指纹一致性”
## 1. 当前草稿已经覆盖到的重点
现有文档和脚本已经比较明确地覆盖了:
- 原型链分层
- native `toString`
- getter / setter / 描述符保护
- `navigator`
- `document`
- `localStorage` / `sessionStorage`
- `canvas` / `WebGL`
- Proxy 吐环境
- `document.all`
- 堆栈清洗的设计入口
这部分作为 future skill 的第一层基础已经够用了。
## 2. 目前最重要的遗漏点
### 2.1 `window` 图关系还不完整
当前草稿里虽然提到了 `window/globalThis/self/top`,但还没有把下面这些关系单独模块化:
- `window.window === window`
- `self === window`
- `top / parent / frames`
- `frameElement`
- `opener`
- `document.defaultView`
这类点一旦补错,经常不是直接报错,而是通过一致性检测暴露。
### 2.2 事件系统还是空白区
现在还缺:
- `EventTarget`
- `Event`
- `UIEvent`
- `MouseEvent`
- `KeyboardEvent`
- `PointerEvent`
- `TouchEvent`
- `CustomEvent`
- `MessageEvent`
更重要的是缺这些行为细节:
- `isTrusted`
- `timeStamp`
- `target/currentTarget/srcElement`
- `addEventListener/removeEventListener/dispatchEvent`
很多风控和验证码环境,不是直接查 `navigator`,而是顺着事件系统走。
### 2.3 网络与通信对象几乎还没进草稿
当前最明显的遗漏之一就是:
- `XMLHttpRequest`
- `fetch`
- `Headers`
- `Request`
- `Response`
- `sendBeacon`
- `WebSocket`
- `EventSource`
你前面已经明确提过 `WebSocket`,但目前这套草稿里还没有把它真正升格成模块。
这会影响:
- 某些 cookie / token 写入链
- 某些 socket 协议站点
- 某些通过 `fetch/xhr` 挂钩的风控
### 2.4 Worker 只被提到了,但没形成模块
现在还缺完整设计:
- `Worker`
- `SharedWorker`
- `ServiceWorker`
- `postMessage`
- `MessageChannel`
- `BroadcastChannel`
- `structuredClone`
尤其是国外盾和新型验证码,越来越喜欢把检测逻辑拆进 Worker。
## 3. 指纹层面的明显遗漏
### 3.1 音频指纹还没单列
当前草稿重点放在 `canvas/WebGL`,但缺:
- `AudioContext`
- `OfflineAudioContext`
- `AudioBuffer`
- 常见音频指纹链路
这点在新型验证码和国外风控里非常常见。
### 3.2 字体指纹还没单列
当前文档里虽然提到“字体”,但还没有形成独立模块。
应该至少考虑:
- 浏览器侧字体枚举导出
- 文本测量差异
- `canvas` 字体渲染一致性
### 3.3 WebRTC 还没进入模块清单
目前还缺:
- `RTCPeerConnection`
- `RTCRtpSender`
- `RTCRtpReceiver`
- 相关候选、能力和属性检测
这类点不一定每个站都用,但一旦碰到就是高优先级。
### 3.4 `Math` / 引擎精度差异没有单独建模
现在草稿里还没有明确:
- 浏览器与 Node 的 `Math` 精度差异
- 不同引擎浮点实现差异
这点在高级风控和 wasm/验证码里会被拿来做环境分辨。
## 4. 浏览器能力对象的遗漏
下面这批对象在当前草稿里还比较弱或者没展开:
- `permissions.query`
- `Notification.permission`
- `mediaDevices`
- `enumerateDevices`
- `getUserMedia`
- `clipboard`
- `geolocation`
- `Bluetooth`
- `USB`
- `HID`
- `serial`
- `xr`
原因不是它们每次都必须补,而是:
- 很多站点会把它们当“是否为真浏览器”的探针
- 很多国外站点喜欢同时读多个能力对象做一致性判断
## 5. 时间、地区、编码对象的遗漏
这一块目前也不够:
- `Intl`
- 时区
- `Date`
- `performance`
- `performance.now`
- `performance.timeOrigin`
- `navigation timing`
- `TextEncoder`
- `TextDecoder`
- `atob`
- `btoa`
- `URL`
- `URLSearchParams`
- `crypto.getRandomValues`
- `crypto.subtle`
如果 future skill 以后要更稳,这些不能长期缺位。
## 6. DOM 结构与样式系统的遗漏
当前 `document` 方向有骨架,但还缺完整 DOM 系统设计:
- `Node`
- `Element`
- `HTMLElement`
- `HTMLDivElement`
- `HTMLCanvasElement`
- `DOMParser`
- `XMLSerializer`
- `MutationObserver`
- `CSSStyleDeclaration`
- `classList`
- `dataset`
- `style`
- `getAttribute/setAttribute`
很多补环境失败并不是 BOM 对象缺,而是 DOM 返回值长得不像真浏览器。
## 7. 现有脚本本身的遗漏
### 7.1 `collect-browser-env.js` 采集面还不够
现在它能采集:
- `navigator`
- `document`
- `screen`
- `history`
- `location`
- `storage`
- 基础 `canvas/webgl`
但还没采:
- `plugins`
- `mimeTypes`
- `permissions`
- `Notification.permission`
- `mediaDevices`
- `battery`
- `AudioContext`
- 字体样本
- `performance`
- `Intl/timezone`
- `document.all` 特征
### 7.2 `observe-runtime.js` 还偏轻量
现在能做基础 Proxy 观察,但还不够:
- 缺路径频次统计
- 缺按对象分类的聚合结果
- 缺“读取返回 undefined”与“调用抛错”联动分析
- 缺输出到 JSON 的稳定格式
- 缺针对 `apply/construct` 的细化报告
### 7.3 `protect-native.js` 还只是底座雏形
现在能做:
- `Function.prototype.toString`
- getter / setter 基础保护
- `name` / `length` 修正
但还没做全:
- `prototype` 描述符修正
- `Symbol.toStringTag` 联动
- 针对 Proxy 包裹后函数的处理
- 多层包装后的 native 串一致性
## 8. blueprint 里提到但尚未补齐的资源
当前 blueprint 里已经提到,但实际文件还没有落地的有:
### 8.1 `references`
- `03-special-cases.md`
- `07-source-map.md`
- `06-validation.md`
### 8.2 `scripts`
- `build-plugin-graph.js`
- `merge-storage-state.js`
- `scaffold-module.js`
### 8.3 `assets`
- `navigator-sample.example.json`
- `plugin-graph.example.json`
- `storage-state.example.json`
这说明现在的草稿已经到了“该从设计走向半成品”的阶段。
## 9. 最该优先补的遗漏顺序
如果按未来 skill 的实用性排序,我建议优先级如下:
1. `window/self/top/parent/defaultView/opener` 一致性
2. `WebSocket` / `fetch` / `XMLHttpRequest`
3. `Worker` / `SharedWorker` / `postMessage`
4. `permissions` / `mediaDevices` / `Notification`
5. `AudioContext` / 字体指纹 / `WebRTC`
6. `Intl` / `performance` / `crypto`
7. 完整 DOM / Event 系统
## 10. 当前最稳的判断
现在这套 `codex` 目录已经不再是“零散笔记”,而是一套成型中的 skill 设计草稿。
但如果要迈过“能跑 Demo”到“能抗检测”的门槛,后续最应该补的不是更多 `navigator.xxx = ...`,而是:
- 跨对象关系
- 异步与通信对象
- 网络对象
- 时间与地区一致性
- 音频 / 字体 / WebRTC 等更深层指纹
- 验证与回归资源