デスクトップ & ブラウザ自動化 (Desktop & Browser Automation)
ACTION REQUIRED(読了後すぐに実行)
NOW:現在のタスクがこのスキルの適用範囲に該当するか確認NOW:../tool-index.mdを読み、ツールの可用性と実際のパスを検証NEXT:ツール不足時は bootstrap を呼び出し、パスを推測しないACT:「ワークフロー」の最初のステップに進んで実行し、確認状態で止まらない
適用範囲
以下のシナリオに該当するタスクで本スキルを使用します。
ブラウザシナリオ(Playwright / agent-browser)
- ウェブページを開き、ページ要素を操作する(クリック、フォーム入力、送信)
- ページコンテンツのスクレイピングまたはスクリーンショット
- ログインフローの自動化
- ペネトレーションテストにおける Web ページとの連携(ペイロード送信、XSS トリガー)
- CAPTCHA ページの自動処理
- バッチフォーム送信
デスクトップアプリケーションシナリオ(OpenReverse)
- Windows デスクトップアプリケーションの操作(IDA Pro、x64dbg、Wireshark 等)
- ビジュアル駆動のインタラクションが必要(CUA モード)
- 構造化 UI 操作が必要(UIA モード)
- デスクトップアプリケーションのネットワークトラフィック監視(mitmproxy 内蔵)
- リバースエンジニアリングツールの GUI 操作の自動化
- ブラックボックステスト(デスクトップソフトウェア)
他のツールとの役割分担
| シナリオ | 使用ツール |
|---|---|
| ウェブページ操作(ブラウザ内) | Playwright / agent-browser |
| デスクトップアプリ操作(Windows GUI) | OpenReverse |
| パケットキャプチャ、HTTP リクエスト取得 | anything-analyzer または OpenReverse network lane |
| JS ブレークポイント、フック、CDP デバッグ | jshookmcp |
| 署名アルゴリズムの特定、環境再現 | js-reverse |
簡単な判断基準:
- ターゲットがウェブページ → Playwright
- ターゲットが Windows デスクトップアプリ → OpenReverse
- 両方必要な場合 → 組み合わせて使用
パート 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でページが安定するのを待つこと。
パート 2: デスクトップアプリ自動化(OpenReverse)
概要
OpenReverse は AI エージェント向けのデスクトップインタラクション&証拠収集フレームワークです。対応機能:
- UIA モード:Windows UI Automation、構造化デスクトップコントロール操作
- CUA モード:ビジュアル駆動インタラクション(Computer Use Agent)、複雑な GUI 向け
- ネットワーク監視:mitmproxy プロキシ内蔵 + ローカルキャプチャ
インタラクションモードの選択
| モード | 適したシナリオ | 基盤技術 |
|---|---|---|
| UIA | ターゲットアプリに標準 Windows コントロールあり(ボタン、テキストボックス、リスト) | Windows UI Automation API |
| CUA | ターゲットアプリの UI が複雑または非標準コントロール(IDA の逆アセンブリビュー、カスタムレンダリング UI) | ビジュアル認識 + マウス/キーボード |
ネットワーク監視モード
| モード | 適したシナリオ |
|---|---|
| Proxy Lane | ターゲットアプリがプロキシを設定できる場合(推奨) |
| Local Lane | ターゲットアプリがプロキシ経由不可、ローカルキャプチャが必要な場合 |
インストールと設定
# 1. プロジェクトをクローン
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 ランタイムをインストール(ビジュアル駆動モードが必要な場合)
npm run install:cua-runtime
npm run doctor:cua-runtime
# 5. ネットワーク監視の依存関係をインストール(キャプチャが必要な場合)
npm run install:mitmproxy
npm run doctor:network
よくある組み合わせ
| 要件 | 設定 |
|---|---|
| デスクトップアプリのみ操作 | UIA または CUA、network 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 デバッグ/フックが必要 →
jshookmcp - 署名アルゴリズムの復元が必要 →
js-reverse - デスクトップアプリがリバースエンジニアリングツールの場合 →
ida-reverse/
同一階層の関連モジュール: js-reverse(ブラウザ操作後に JS 分析が必要な場合)、ida-reverse(OpenReverse で IDA GUI を自動操作可能)
タスク完了セルフチェック(完了宣言前に MUST 通過)
- ワークフローの各ステップを実行したか(読んだだけではない)?
-
tool-indexに基づき、実際のツールパスを使用したか? - 再現可能な証拠(コマンド/スクリプト/スクリーンショット/レポート)を生成したか?
- RULES で要求されている Checklist 項目を完了し、書き戻したか?