$npx -y skills add zhaoxuya520/reverse-skill --skill browser-automation统一自动化入口。覆盖浏览器自动化(Playwright)和 Windows 桌面应用自动化(OpenReverse)。 浏览器场景:打开网页、点击、填表、爬取、截图、自动化登录、渗透页面交互。 桌面场景:操作 IDA/x64dbg 等 GUI 工具、Windows UI Automation、视觉驱动交互、桌面应用网络抓包。 触发关键词:浏览器自动化、桌面自动化、打开网页、填表、爬取、截图、自动化登录、Playwright、agent-browser、headless、OpenReverse、UIA、CUA、桌面操作、Windows 自动化。
| 1 | # 自动化操作 (Desktop & Browser Automation) |
| 2 | |
| 3 | ## ACTION REQUIRED(读完后立刻执行) |
| 4 | |
| 5 | 1. `NOW`:确认当前任务是否命中本 skill 的适用范围 |
| 6 | 2. `NOW`:读取 `../tool-index.md`,校验工具可用性和实际路径 |
| 7 | 3. `NEXT`:缺工具时调用 bootstrap,不要猜路径 |
| 8 | 4. `ACT`:进入"工作流"第一步并执行,不要停在确认状态 |
| 9 | |
| 10 | ## 适用范围 |
| 11 | |
| 12 | 当任务属于以下场景时使用本 skill: |
| 13 | |
| 14 | ### 浏览器场景(Playwright / agent-browser) |
| 15 | - 打开网页并操作页面元素(点击、填表、提交) |
| 16 | - 爬取页面内容或截图 |
| 17 | - 自动化登录流程 |
| 18 | - 渗透测试中与 Web 页面交互(提交 payload、触发 XSS) |
| 19 | - 验证码页面的自动化处理 |
| 20 | - 批量表单提交 |
| 21 | |
| 22 | ### 桌面应用场景(OpenReverse) |
| 23 | - 操作 Windows 桌面应用(IDA Pro、x64dbg、Wireshark 等) |
| 24 | - 需要视觉驱动交互(CUA 模式) |
| 25 | - 需要结构化 UI 操作(UIA 模式) |
| 26 | - 桌面应用的网络流量观察(内置 mitmproxy) |
| 27 | - 自动化逆向工具的 GUI 操作 |
| 28 | - 黑盒测试桌面软件 |
| 29 | |
| 30 | ### 与其他工具的分工 |
| 31 | |
| 32 | | 场景 | 用什么 | |
| 33 | |------|--------| |
| 34 | | 操作网页(浏览器内) | **Playwright / agent-browser** | |
| 35 | | 操作桌面应用(Windows GUI) | **OpenReverse** | |
| 36 | | 抓包分析、HTTP 请求捕获 | anything-analyzer 或 OpenReverse network lane | |
| 37 | | JS 断点、Hook、CDP 调试 | jshookmcp | |
| 38 | | 定位签名算法、补环境复现 | js-reverse | |
| 39 | |
| 40 | 简单判断: |
| 41 | - 目标是网页 → Playwright |
| 42 | - 目标是 Windows 桌面应用 → OpenReverse |
| 43 | - 两者都需要 → 组合使用 |
| 44 | |
| 45 | --- |
| 46 | |
| 47 | ## Part 1: 浏览器自动化(Playwright / agent-browser) |
| 48 | |
| 49 | ### 核心工作流 |
| 50 | |
| 51 | ```bash |
| 52 | # 1. 打开页面 |
| 53 | agent-browser open <url> |
| 54 | |
| 55 | # 2. 获取可交互元素(返回 @e1, @e2... 引用) |
| 56 | agent-browser snapshot -i |
| 57 | |
| 58 | # 3. 用引用操作元素 |
| 59 | agent-browser click @e1 |
| 60 | agent-browser fill @e2 "text" |
| 61 | |
| 62 | # 4. 完成后关闭 |
| 63 | agent-browser close |
| 64 | ``` |
| 65 | |
| 66 | ### 命令参考 |
| 67 | |
| 68 | ```bash |
| 69 | # 导航 |
| 70 | agent-browser open <url> |
| 71 | agent-browser close |
| 72 | |
| 73 | # 页面快照 |
| 74 | agent-browser snapshot # 完整无障碍树 |
| 75 | agent-browser snapshot -i # 仅可交互元素(推荐) |
| 76 | |
| 77 | # 交互操作 |
| 78 | agent-browser click @e1 |
| 79 | agent-browser fill @e2 "text" |
| 80 | agent-browser type @e2 "text" |
| 81 | agent-browser press Enter |
| 82 | agent-browser scroll down 500 |
| 83 | |
| 84 | # 获取信息 |
| 85 | agent-browser get text @e1 |
| 86 | agent-browser get title |
| 87 | agent-browser get url |
| 88 | |
| 89 | # 等待 |
| 90 | agent-browser wait @e1 |
| 91 | agent-browser wait 2000 |
| 92 | agent-browser wait --load networkidle |
| 93 | ``` |
| 94 | |
| 95 | ### 注意事项 |
| 96 | - 必须执行 `agent-browser close`,否则进程泄漏 |
| 97 | - 操作前先 snapshot,不要猜元素引用 |
| 98 | - 提交表单后用 `wait --load networkidle` 等页面稳定 |
| 99 | |
| 100 | --- |
| 101 | |
| 102 | ## Part 2: 桌面应用自动化(OpenReverse) |
| 103 | |
| 104 | ### 概述 |
| 105 | |
| 106 | [OpenReverse](https://github.com/zhexulong/openreverse) 是面向 AI Agent 的桌面交互与证据采集框架,支持: |
| 107 | - **UIA 模式**:Windows UI Automation,结构化桌面控件操作 |
| 108 | - **CUA 模式**:视觉驱动交互(Computer Use Agent),适合复杂 GUI |
| 109 | - **网络观察**:内置 mitmproxy 代理 + 本地抓取 |
| 110 | |
| 111 | ### 交互模式选择 |
| 112 | |
| 113 | | 模式 | 适合场景 | 底层 | |
| 114 | |------|---------|------| |
| 115 | | UIA | 目标应用有标准 Windows 控件(按钮、文本框、列表) | Windows UI Automation API | |
| 116 | | CUA | 目标应用 UI 复杂或非标准控件(IDA 的反汇编视图、自定义渲染界面) | 视觉识别 + 鼠标键盘 | |
| 117 | |
| 118 | ### 网络观察模式 |
| 119 | |
| 120 | | 模式 | 适合场景 | |
| 121 | |------|---------| |
| 122 | | Proxy Lane | 目标应用可以配置代理(推荐) | |
| 123 | | Local Lane | 目标应用无法走代理,需要本地抓取 | |
| 124 | |
| 125 | ### 安装与配置 |
| 126 | |
| 127 | ```bash |
| 128 | # 1. Clone 项目 |
| 129 | git clone https://github.com/zhexulong/openreverse.git |
| 130 | cd openreverse |
| 131 | |
| 132 | # 2. 安装依赖 |
| 133 | npm install |
| 134 | |
| 135 | # 3. 接入 Agent 宿主(Claude Code / Codex / Zed) |
| 136 | npm run init:agents -- --target=all /path/to/project |
| 137 | |
| 138 | # 4. 安装 CUA runtime(如果需要视觉驱动模式) |
| 139 | npm run install:cua-runtime |
| 140 | npm run doctor:cua-runtime |
| 141 | |
| 142 | # 5. 安装网络观察依赖(如果需要抓包) |
| 143 | npm run install:mitmproxy |
| 144 | npm run doctor:network |
| 145 | ``` |
| 146 | |
| 147 | ### 常见组合 |
| 148 | |
| 149 | | 需求 | 配置 | |
| 150 | |------|------| |
| 151 | | 只操作桌面应用 | UIA 或 CUA,不接网络 lane | |
| 152 | | 操作桌面应用 + 抓包 | UIA/CUA + proxy lane | |
| 153 | | 操作桌面应用 + 本地抓取 | UIA/CUA + local lane | |
| 154 | |
| 155 | ### 逆向场景示例 |
| 156 | |
| 157 | ```text |
| 158 | 场景:自动化操作 IDA Pro 进行批量分析 |
| 159 | |
| 160 | 1. 用 OpenReverse CUA 模式打开 IDA Pro |
| 161 | 2. 自动加载目标二进制 |
| 162 | 3. 等待分析完成 |
| 163 | 4. 通过 UI 操作导出函数列表 |
| 164 | 5. 同时用 network lane 观察 IDA 的网络行为(如 Lumina 请求) |
| 165 | ``` |
| 166 | |
| 167 | ```text |
| 168 | 场景:自动化操作 x64dbg 调试 |
| 169 | |
| 170 | 1. 用 OpenReverse UIA 模式启动 x64dbg |
| 171 | 2. 加载目标程序 |
| 172 | 3. 设置断点 |
| 173 | 4. 运行并观察寄存器/内存变化 |
| 174 | 5. 截图保存证据 |
| 175 | ``` |
| 176 | |
| 177 | --- |
| 178 | |
| 179 | ## 按需自举(On-Demand Bootstrap) |
| 180 | |
| 181 | ### 自动化能力边界 |
| 182 | |
| 183 | | 工具 | 可自动安装 | 安装方式 | 说明 | |
| 184 | |------|-----------|---------|------| |
| 185 | | Playwright | ✓ | npm + npx playwright install | 浏览器自动化引擎 | |
| 186 | | agent-browser CLI | ✓ | npm install -g agent-browser | 浏览器操作 CLI | |
| 187 | | Node.js | ✓ | winget | 前置依赖 | |
| 188 | | OpenReverse | ✗ | 手动 clone + npm install | 实验阶段,依赖较重 | |
| 189 | | mitmproxy | ✗ | 手动安装 | OpenReverse 网络观察依赖 | |
| 190 | |
| 191 | ### 自举触发 |
| 192 | |
| 193 | - 浏览器操作缺 Playwright → 自动 bootstrap |
| 194 | - 桌面操作需要 OpenReverse → 引导用户手动安装(给出完整步骤) |
| 195 | |
| 196 | ### OpenReverse 手动安装引导 |
| 197 | |
| 198 | 如果 AI 检测到需要桌面应用自动化但 OpenReverse 未安装: |
| 199 | |
| 200 | ```markdown |
| 201 | ⚠️ **需要 OpenReverse 进行桌面应用自动化** |
| 202 | |
| 203 | **安装步骤**: |
| 204 | 1. `git clone https://github.com/zhexulong/openreverse.git` |
| 205 | 2. `cd openreverse && npm install` |
| 206 | 3. `npm run init:agents -- --target=all <你的项目路径>` |
| 207 | 4. 如需视觉模式:`npm run install:cua-runtime` |
| 208 | 5. 如需网络观察:`npm run install:mitmproxy` |
| 209 | |
| 210 | **验证**:`npm run doctor:cua-runtime` 和 `npm run doctor:network` |
| 211 | ``` |
| 212 | |
| 213 | --- |
| 214 | |
| 215 | ## 路由上下文 |
| 216 | |
| 217 | **上游入口**: `skills/SKILL.md`(总控)、`routing.md` |
| 218 | **适用场景**: 任何需要自动化操作浏览器或桌面应用的任务 |
| 219 | **下游出口**: |
| 220 | - 抓到的请求需要分析 → `anything-analyzer` 或 `js-reverse` |
| 221 | - 需要 JS 调试/Hook → `jshookmcp` |
| 222 | - 需要还原签名算法 → `js-reverse` |
| 223 | - 桌面应用是逆向工具 → `ida-reverse/` |
| 224 | |
| 225 | **同级关联模块**: `js-reverse`(浏览器操作后可能需要分析 JS)、`ida-reverse`(OpenReverse 可以自动化操作 IDA GUI) |
| 226 | |
| 227 | |
| 228 | ## 任务完成自检(声称完成前 MUST 通过) |
| 229 | |
| 230 | - [ ] 我是否执行了工作流中的每一步(而不是只阅读)? |
| 231 | - [ ] 我是否基于 `tool-index` 使用了真实工具路径? |
| 232 | - [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)? |
| 233 | - [ ] 我是否完成并回写了 RULES 要求的 Checklist 项? |