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,3 @@
# AST 去混淆
前提是页面取证和本地复现已经基本跑通。不要在未跑通前就把主要精力放在大规模 AST 清洗上。

View File

@@ -0,0 +1,12 @@
# 自动化入口
推荐开场顺序:
1. `js-reverse_new_page` 或 `js-reverse_navigate_page` 打开页面
2. `js-reverse_list_network_requests` 看最近请求
3. `js-reverse_get_request_initiator` 找调用栈
4. `js-reverse_list_scripts` 建立脚本范围
5. `js-reverse_search_in_sources` 搜请求路径、参数名、函数名
6. 必要时 `js-reverse_break_on_xhr` 或 `js-reverse_set_breakpoint_on_text`
默认不要一上来就猜 `window`、`document`、`navigator` 该怎么补。

View File

@@ -0,0 +1,6 @@
# 补环境规则
- 只补页面证据已经证明需要的对象
- 一次补一个最小因果单元
- 先补值,再补函数壳,再补返回对象契约
- 每次补丁都要重新执行并记录 first divergence 是否前移

View File

@@ -0,0 +1,8 @@
# 回退策略
当当前路径无进展时按顺序回退:
1. 从断点回退到请求观察
2. 从源码猜测回退到运行时证据
3. 从 Node 补环境回退到页面取证
4. 从深度去混淆回退到最小可复现链路

View File

@@ -0,0 +1,9 @@
# 插桩
优先轻量观察:
- XHR/Fetch 断点
- 函数文本断点
- 暂停后读调用栈与局部变量
只有在轻量观察不够时,才升级为更重的源码改写或本地插桩。

View File

@@ -0,0 +1,11 @@
# 本地复现
页面侧确认以下内容后再回到 Node:
- 真实入口函数
- 调用顺序
- 参数来源
- 依赖的浏览器对象
- 是否依赖时间、随机数、storage、cookie、UA、canvas、crypto
先最小复现,再逐步补环境,不要一次性模拟整浏览器。

View File

@@ -0,0 +1,30 @@
# MCP 任务编排模板
```md
## Observe
- 页面:
- 目标请求:
- initiator:
- 可疑脚本:
## Capture
- 采样方式:
- 命中位置:
- 关键入参:
- 关键返回:
## Rebuild
- 入口函数:
- 依赖脚本:
- 环境缺口:
## Patch
- first divergence:
- 本次补丁:
- 复测结果:
## Output
- 是否拿到参数:
- 是否可稳定复现:
- 剩余风险:
```

View File

@@ -0,0 +1,9 @@
# Node 环境复现
Node 侧默认顺序:
1. 导入目标脚本
2. 最小 shim 宿主对象
3. 跑入口函数
4. 记录首个异常或 first divergence
5. 回到页面证据补齐缺口

View File

@@ -0,0 +1,9 @@
# 输出契约
最终输出至少应包含:
- 目标请求和参数位置
- 哪个脚本、哪个函数参与生成
- 证据来源:请求、调用栈、断点、运行时值
- 当前是否已能稳定复现
- 若未完成,还差哪一个环境缺口

View File

@@ -0,0 +1,11 @@
# 任务产物
建议每个任务至少保留:
- 目标请求样例
- initiator 调用栈
- 可疑脚本 URL
- 关键断点位置
- 关键函数入参/返回值
- first divergence 记录
- 每次补环境补丁说明

View File

@@ -0,0 +1,11 @@
# 任务输入模板
```md
目标站点:
目标页面:
目标请求:
关注参数:
已知线索:
期望产出:
是否需要本地复现:是 / 否
```

View File

@@ -0,0 +1,7 @@
# 工具默认值
- `js-reverse_list_network_requests`:先看第一页默认结果,不足再翻页
- `js-reverse_search_in_sources`:默认 `excludeMinified=true`
- `js-reverse_get_script_source`:只读小片段,整份源码优先配合 `js-reverse_save_script_source`
- `js-reverse_break_on_xhr`:只填能稳定命中的 URL 片段
- `js-reverse_get_paused_info`:默认先看 `frameIndex=0`