用途:面向 JS 逆向自动化,通过 JSRPC 与真实浏览器完成前端加密入口定位、运行时取证、对抗分析、验证与工程化交付,要求浏览器连接、文档身份和 action 级结果形成可复核证据链。适用登录/注册密码加密、API 请求签名、表单字段加密、响应数据解密。输入包含目标 URL、待分析参数,可选 Fetch Example。
主要能力:预分析 Fetch Example,提取加密算法、参数格式与目标 URL;打开页面注入 Hook 并触发动作;捕获网络请求定位加密函数;注册 JSRPC 后生成 Flask/Burp 产物并验证输出。具备对抗运行时探针、可回滚的持久 Hook、Hook 注册表共享与组合、循环引用安全快照、浏览器会话契约、控制流观测、源码级保守插桩与对抗差分等能力。
使用方式:遇到反调试等对抗时先生成并运行 adversarial_runtime_probe.js,观察到明确对抗信号后才使用 --mode intervene 或源码级插桩。生成 Flask 代理后必须执行:python3 scripts/check_delivery_contract.py --proxy generated/flask_proxy.py --output artifacts/delivery_contract.json;随后执行真实浏览器 action 级 smoke test,并运行:python3 scripts/validate_browser_evidence.py --input artifacts/jsrpc_smoke.json --output artifacts/browser_evidence.json(如保存了桥接状态、tabId、documentId 可加 --require-session)。jsrpc.base_url 可填 http://127.0.0.1:12080 或 http://127.0.0.1:12080/go,生成器须保证只请求一次 /go。
限制:验证码、WebAuthn、设备证明、跨域隔离 Realm 和未导出 WASM 内部函数需保留人工或 unsupported 路径;端口监听不等于 JSRPC 可用,/list 无 action、/go 返回 400 或 Flask 返回 502 时不得写验证通过;超时、断线、待恢复或文档身份变化只能标记未确认;单次调用 50,000 token、最大工具调用 20 次。