自動化操作 (Desktop & Browser Automation)
操作要求(讀完後立刻執行)
NOW:確認當前任務是否命中本 skill 的適用範圍NOW:讀取../tool-index.md,校驗工具可用性和實際路徑NEXT:缺工具時呼叫 bootstrap,不要猜路徑ACT:進入「工作流」第一步並執行,不要停在確認狀態
適用範圍
當任務屬於以下場景時使用本 skill:
瀏覽器場景(Playwright / agent-browser)
- 開啟網頁並操作頁面元素(點擊、填表、提交)
- 爬取頁面內容或截圖
- 自動化登入流程
- 滲透測試中與 Web 頁面互動(提交 payload、觸發 XSS)
- 驗證碼頁面的自動化處理
- 批量表單提交
桌面應用場景(OpenReverse)
- 操作 Windows 桌面應用(IDA Pro、x64dbg、Wireshark 等)
- 需要視覺驅動互動(CUA 模式)
- 需要結構化 UI 操作(UIA 模式)
- 桌面應用的網路流量觀察(內建 mitmproxy)
- 自動化逆向工具的 GUI 操作
- 黑盒測試桌面軟體
與其他工具的分工
| 場景 | 用什麼 |
|---|---|
| 操作網頁(瀏覽器內) | Playwright / agent-browser |
| 操作桌面應用(Windows GUI) | OpenReverse |
| 抓包分析、HTTP 請求捕獲 | anything-analyzer 或 OpenReverse network lane |
| JS 斷點、Hook、CDP 偵錯 | jshookmcp |
| 定位簽名演算法、補環境復現 | js-reverse |
簡單判斷:
- 目標是網頁 → Playwright
- 目標是 Windows 桌面應用 → OpenReverse
- 兩者都需要 → 組合使用
Part 1: 瀏覽器自動化(Playwright / agent-browser)
核心工作流
# 1. 開啟頁面
agent-browser open <url>
# 2. 取得可互動元素(回傳 @e1, @e2... 引用)
agent-browser snapshot -i
# 3. 用引用操作元素
agent-browser click @e1
agent-browser fill @e2 "text"
# 4. 完成後關閉
agent-browser close
命令參考
# 導航
agent-browser open <url>
agent-browser close
# 頁面快照
agent-browser snapshot # 完整無障礙樹
agent-browser snapshot -i # 僅可互動元素(推薦)
# 互動操作
agent-browser click @e1
agent-browser fill @e2 "text"
agent-browser type @e2 "text"
agent-browser press Enter
agent-browser scroll down 500
# 取得資訊
agent-browser get text @e1
agent-browser get title
agent-browser get url
# 等待
agent-browser wait @e1
agent-browser wait 2000
agent-browser wait --load networkidle
注意事項
- 必須執行
agent-browser close,否則行程洩漏 - 操作前先 snapshot,不要猜元素引用
- 提交表單後用
wait --load networkidle等頁面穩定
Part 2: 桌面應用自動化(OpenReverse)
概述
OpenReverse 是面向 AI Agent 的桌面互動與證據採集框架,支援:
- UIA 模式:Windows UI Automation,結構化桌面控制項操作
- CUA 模式:視覺驅動互動(Computer Use Agent),適合複雜 GUI
- 網路觀察:內建 mitmproxy 代理 + 本機擷取
互動模式選擇
| 模式 | 適合場景 | 底層 |
|---|---|---|
| UIA | 目標應用有標準 Windows 控制項(按鈕、文字方塊、清單) | Windows UI Automation API |
| CUA | 目標應用 UI 複雜或非標準控制項(IDA 的反組譯檢視、自訂渲染介面) | 視覺識別 + 滑鼠鍵盤 |
網路觀察模式
| 模式 | 適合場景 |
|---|---|
| Proxy Lane | 目標應用可以設定代理(推薦) |
| Local Lane | 目標應用無法走代理,需要本機擷取 |
安裝與設定
# 1. Clone 專案
git clone https://github.com/zhexulong/openreverse.git
cd openreverse
# 2. 安裝依賴
npm install
# 3. 接入 Agent 宿主(Claude Code / Codex / Zed)
npm run init:agents -- --target=all /path/to/project
# 4. 安裝 CUA runtime(如果需要視覺驅動模式)
npm run install:cua-runtime
npm run doctor:cua-runtime
# 5. 安裝網路觀察依賴(如果需要抓包)
npm run install:mitmproxy
npm run doctor:network
常見組合
| 需求 | 設定 |
|---|---|
| 只操作桌面應用 | UIA 或 CUA,不接網路 lane |
| 操作桌面應用 + 抓包 | UIA/CUA + proxy lane |
| 操作桌面應用 + 本機擷取 | UIA/CUA + local lane |
反向工程場景範例
場景:自動化操作 IDA Pro 進行批量分析
1. 用 OpenReverse CUA 模式開啟 IDA Pro
2. 自動載入目標二進位檔
3. 等待分析完成
4. 透過 UI 操作匯出函式清單
5. 同時用 network lane 觀察 IDA 的網路行為(如 Lumina 請求)
場景:自動化操作 x64dbg 偵錯
1. 用 OpenReverse UIA 模式啟動 x64dbg
2. 載入目標程式
3. 設定中斷點
4. 執行並觀察暫存器/記憶體變化
5. 截圖儲存證據
按需自舉(On-Demand Bootstrap)
自動化能力邊界
| 工具 | 可自動安裝 | 安裝方式 | 說明 |
|---|---|---|---|
| Playwright | ✓ | npm + npx playwright install | 瀏覽器自動化引擎 |
| agent-browser CLI | ✓ | npm install -g agent-browser | 瀏覽器操作 CLI |
| Node.js | ✓ | winget | 前置依賴 |
| OpenReverse | ✗ | 手動 clone + npm install | 實驗階段,依賴較重 |
| mitmproxy | ✗ | 手動安裝 | OpenReverse 網路觀察依賴 |
自舉觸發
- 瀏覽器操作缺 Playwright → 自動 bootstrap
- 桌面操作需要 OpenReverse → 引導使用者手動安裝(給出完整步驟)
OpenReverse 手動安裝引導
如果 AI 偵測到需要桌面應用自動化但 OpenReverse 未安裝:
⚠️ **需要 OpenReverse 進行桌面應用自動化**
**安裝步驟**:
1. `git clone https://github.com/zhexulong/openreverse.git`
2. `cd openreverse && npm install`
3. `npm run init:agents -- --target=all <你的專案路徑>`
4. 如需視覺模式:`npm run install:cua-runtime`
5. 如需網路觀察:`npm run install:mitmproxy`
**驗證**:`npm run doctor:cua-runtime` 和 `npm run doctor:network`
路由上下文
上游入口: skills/SKILL.md(總控)、routing.md
適用場景: 任何需要自動化操作瀏覽器或桌面應用的任務
下游出口:
- 抓到的請求需要分析 →
anything-analyzer或js-reverse - 需要 JS 偵錯/Hook →
jshookmcp - 需要還原簽名演算法 →
js-reverse - 桌面應用是逆向工具 →
ida-reverse/
同級關聯模組: js-reverse(瀏覽器操作後可能需要分析 JS)、ida-reverse(OpenReverse 可以自動化操作 IDA GUI)
任務完成自檢(聲稱完成前 MUST 通過)
- 我是否執行了工作流中的每一步(而不是只閱讀)?
- 我是否基於
tool-index使用了真實工具路徑? - 我是否產出了可複現證據(命令/腳本/截圖/報告)?
- 我是否完成並回寫了 RULES 要求的 Checklist 項?