安卓网页逆向分析Model Context Protocol(MCP)工具
概览
AI 驱动的网页调试与逆向分析工作台 —— 让 Claude、GPT、Gemini、Cursor 等 AI Agent 通过 MCP 连接 Android 浏览器 WebReverse MCP 是一个基于 Android 的专业浏览器、网页分析器、JavaScript 调试器、网络分析器和 MCP Server 平台。外部 AI Agent / LLM / IDE Agent 通过 MCP(Model Context Protocol)连接 Android 浏览器,对当前网页执行自动化浏览、DOM 分析、JavaScript 分析、网络分析、调试、断点、运行时观测、Hook、脚本注入等操作。 - 地址栏、URL 搜索、多标签、标签组 - 页面前进 / 后退 / 刷新 / 停止 / 首页 / 全屏 - Cookie / LocalStorage / SessionStorage / IndexedDB / Cache 管理 - 历史记录、收藏夹、最近关闭 - 页面源码查看 调试与网络能力全部经 MCP Tools 暴露给 AI,由 CDP 复用枢纽承载:同一页面只保持一条后端 CDP 连接,进程内多个 MCP 会话(调试器 / 网络监视器 / 脚本工具)共享接入,断点、暂停与网络事件在会话间广播。CDP 不可用时自动降级为注入式实现(evaluateJavascript + Hook)。 - AST 解析:基于 ESTree 规范的解析器(JsParser),支持函数 / 字符串 / 标识符 / 调用表达式搜索 - 混淆检测(Obfuscation Score 0-100):字符串数组编码、控制流平坦化、变量重命名、不可达代码、eval / new Function / setTimeout 动态代码检测、反调试检测 - API Discovery:自动从 HTML/JS/Network 提取 API Endpoint、Method、Headers、Caller - 框架检测:React / Vue / Angular / Svelte / Next.
README
WebReverse MCP
AI 驱动的网页调试与逆向分析工作台 —— 让 Claude、GPT、Gemini、Cursor 等 AI Agent 通过 MCP 连接 Android 浏览器
WebReverse MCP 是一个基于 Android 的专业浏览器、网页分析器、JavaScript 调试器、网络分析器和 MCP Server 平台。外部 AI Agent / LLM / IDE Agent 通过 MCP(Model Context Protocol)连接 Android 浏览器,对当前网页执行自动化浏览、DOM 分析、JavaScript 分析、网络分析、调试、断点、运行时观测、Hook、脚本注入等操作。
目录
核心特性
浏览器模式
- 地址栏、URL 搜索、多标签、标签组
- 页面前进 / 后退 / 刷新 / 停止 / 首页 / 全屏
- Cookie / LocalStorage / SessionStorage / IndexedDB / Cache 管理
- 历史记录、收藏夹、最近关闭
- 页面源码查看
AI 调试与网络分析(MCP Tools,CDP 直连)
调试与网络能力全部经 MCP Tools 暴露给 AI,由 CDP 复用枢纽承载:同一页面只保持一条后端 CDP 连接,进程内多个 MCP 会话(调试器 / 网络监视器 / 脚本工具)共享接入,断点、暂停与网络事件在会话间广播。CDP 不可用时自动降级为注入式实现(evaluateJavascript + Hook)。
| 能力域 | 覆盖(工具前缀) |
|---|---|
| DOM | DOM Tree、属性、Computed Style、Box Model、Shadow DOM、XPath、CSS Selector(dom.*) |
| Console | evaluate JS(同步/异步)、inspect object、console.log/warn/error/table/dir 捕获(console.* / js.evaluate) |
| Sources | JS/CSS/HTML/JSON 源码、Pretty Print、SourceMap 还原、Global Search、Diff(js.* / page.*) |
| Network | HTTP/HTTPS/Fetch/XHR/WebSocket/EventSource 采集、Headers/Cookies/Body/Timing、HAR 导出、Copy as cURL、请求重放/Mock/UA 伪装(network.*) |
| Storage | Cookies / LocalStorage / SessionStorage / IndexedDB / Cache Storage / Service Worker(storage.*) |
| Debugger | 断点(Line/Function/DOM/Event/XHR/Exception/Logpoint)、单步、调用栈、作用域、局部变量、CPU Profile(debugger.*) |
| Performance | Navigation Timing、First Paint / FCP、资源瀑布图、内存快照(page.performance) |
| Security | HTTPS/CSP 检查、框架检测、敏感数据脱敏审计(re.*) |
| 暂停放行 | 断点命中页面暂停时,浏览器内悬浮"调试器已暂停"提示条一键放行,无需任何调试前端即可恢复执行 |
JavaScript 分析系统
- AST 解析:基于 ESTree 规范的解析器(JsParser),支持函数 / 字符串 / 标识符 / 调用表达式搜索
- 混淆检测(Obfuscation Score 0-100):字符串数组编码、控制流平坦化、变量重命名、不可达代码、eval / new Function / setTimeout 动态代码检测、反调试检测
- API Discovery:自动从 HTML/JS/Network 提取 API Endpoint、Method、Headers、Caller
- 框架检测:React / Vue / Angular / Svelte / Next.js / Nuxt / Vite / Webpack / jQuery / Axios / Redux 等
- SourceMap 解析:还原压缩代码到原始源码
Hook 引擎
- 网络 Hook:URL/Host/Path/Method/Header/Body/Regex 匹配 + Log/Modify/Block/Redirect/Delay/Mock 动作
- Runtime Hook:
hookFunction()/hookMethod()/hookProperty()/hookFetch()/hookXHR()/hookWebSocket()/hookStorage() - 生命周期:install / enable / disable / remove / reset / export / import
- 内置类型:Function / Method / Property / Event / Fetch / XHR / WebSocket / Storage / Cookie / Console / Timer / Crypto / Canvas / Clipboard / History / Location
MCP Server
- 传输方式:Streamable HTTP(
POST /mcp) - 协议:JSON-RPC 2.0,兼容 MCP 2025-03-26 规范
- 461 个原始 Tools / 40 个聚合枢纽(开启聚合模式时客户端仅暴露 40 个枢纽,每个含多个 action;全量模式暴露全部原始工具)
- 12 Resources + 2 资源模板:
browser://current-page、browser://dom、browser://network、browser://page/{tabId}等 - 13 Prompts:
analyze_page、analyze_login_flow、trace_function、evidence_workflow(证据驱动工作流)等
统一逆向分析内核
- Unified TraceEvent:Hook / Runtime / Network / WASM / Storage / Timer 统一事件模型,支持增量游标、值指纹和异步谱系
- SSA + CallGraph + Taint:从过程内顺序传播升级为 SSA Def-Use、跨函数参数/返回传播与 Source → Transform → Sink 路径分析
- WASM Provenance:静态扫描 memory load/store、函数读写区间、指针型导出与 wasm-bindgen 宿主边界
- JSVMP Micro-IR:将 VM Handler 归一为 Micro-IR,建立跨脚本语义签名库,支持基于样本的算子差分推断
- Validation Loop:候选公式与浏览器真实样本闭环验证,区分"候选 / 全命中 / 已验证"
- Adaptive Investigation:目标驱动的逆向规划器,根据证据与阻塞反馈动态选择静态、动态、Hook、WASM、JSVMP、验证路径
证据图谱引擎
- Evidence Store:订阅 EventBus 自动沉淀证据——网络请求 / Hook 命中 / 断点命中 / 控制台异常 / 页面加载全程留痕
- Reverse Graph:端点 / 函数 / 脚本 / 令牌 / 加密操作 / 存储键自动建图,关系含 CALLS / REQUESTS / GENERATES / WRITES / SIGNS 等
- 时间窗关联:加密 Hook 命中与 ±3s 内的网络请求自动建立 SIGNS 边
- Analysis Pipeline:5 条端到端流水线(recon / api_trace / token_trace / crypto_link / snapshot)
- Runtime Snapshot:断点命中现场(调用栈 / 局部变量 / 命中断点)一键沉淀为可查询证据
技术栈
| 类别 | 技术 |
|---|---|
| 语言 | Kotlin 2.0+ |
| UI | Jetpack Compose + Material 3 |
| 架构 | Clean Architecture + Multi-module |
| 异步 | Coroutines + Flow / StateFlow / SharedFlow |
| 导航 | Navigation Compose(自研响应式路由) |
| 持久化 | Room + DataStore |
| 网络 | OkHttp + Kotlin Serialization |
| 浏览器内核 | Android WebView / androidx.webkit |
| 调试协议 | Chromium DevTools Protocol(unix socket 直连 + 进程内复用枢纽,注入式降级) |
| MCP Server | Ktor(Netty) |
| DI | 手动 DI 容器(AppContainer) |
| 日志 | Timber + 自研分类日志(9 类) |
| 最低支持 | Android 8.0(API 26) |
架构设计
┌─────────────────────────────────────────────────────────────┐
│ AI Agent │
│ Claude / GPT / Gemini / Cursor / IDE Agent │
└──────────────────────┬──────────────────────────────────────┘
│ Wi-Fi / LAN (JSON-RPC 2.0)
▼
┌─────────────────────────────────────────────────────────────┐
│ MCP Server (Ktor) │
│ Streamable HTTP POST /mcp │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ ToolRegistry (461 raw + 40 hubs) │ │
│ │ Browser│Tab│DOM│JS│Debugger│Network│Hook│Storage │ │
│ │ Page│ReverseEngineering│Frame│Worker│Performance │ │
│ │ Event│Workspace│MCP│System│File System │ │
│ └──────────────────────────────────────────────────────┘ │
│ ┌──────────────┐ ┌───────────────┐ ┌────────────────┐ │
│ │ 12 Resources │ │ 13 Prompts │ │ Auth + Session │ │
│ └──────────────┘ └───────────────┘ └────────────────┘ │
└──────────────────────┬──────────────────────────────────────┘
│ ToolDependencies(依赖注入)
▼
┌─────────────────────────────────────────────────────────────┐
│ 领域服务层 │
│ ┌────────────┐ ┌─────────────┐ ┌────────────────────────┐ │
│ │ Browser │ │ DevTools │ │ JavaScript 分析 │ │
│ │ Service │ │ Inspector │ │ Parser/Obfuscation/API │ │
│ │ (多 Tab) │ │ Console │ │ Discovery/Framework │ │
│ │ │ │ Debugger │ │ Workspace │ │
│ │ Hook │ │ Network │ │ Manager │ │
│ │ Engine │ │ Storage │ │ (项目管理) │ │
│ └────────────┘ │ Performance │ └────────────────────────┘ │
│ └─────────────┘ │
└──────────────────────┬──────────────────────────────────────┘
│ EventBus(解耦通信)
▼
┌─────────────────────────────────────────────────────────────┐
│ BrowserEngine (WebView 封装) │
│ JsBridge (console/network/hook 注入) + NetworkBridge │
└─────────────────────────────────────────────────────────────┘
数据流向(Clean Architecture)
MCP Tool → UseCase → BrowserService → BrowserEngine → WebView
↓ ↓
EventBus ←—————— Hook/Console/Network 事件 ——————→ JsBridge
↓
Room 持久化 + UI StateFlow 更新
模块结构
WebReverseMCP/
├── app/ # 应用入口 + Compose UI + DI 容器
├── core/
│ ├── core-common/ # 事件总线、领域模型、权限模型、工具类
│ ├── core-logging/ # 统一日志(9 分类 + 环形缓冲)
│ ├── core-security/ # TokenManager + PermissionManager
│ ├── core-network/ # OkHttp 封装、HAR 导出
│ ├── core-database/ # Room(17 张表)+ Repository
│ ├── core-ui/ # 共享 Compose 组件
│ └── core-mcp/ # MCP 协议核心(McpTool/ToolRegistry/JSON-RPC)
├── browser/
│ ├── browser-engine/ # WebView 封装、JsBridge、NetworkBridge
│ ├── browser-tabs/ # TabManager(多标签 + 标签组)
│ ├── browser-history/ # 历史记录
│ ├── browser-bookmarks/ # 收藏夹
│ └── browser-ui/ # 浏览器 UI 组件
├── devtools/
│ ├── devtools-protocol/ # CDP 传输与协议(LocalSocket/TcpWebSocket/CdpHub)
│ ├── devtools-dom/ # DOM Inspector
│ ├── devtools-console/ # Console Manager
│ ├── devtools-debugger/ # Debugger Manager(断点/调用栈)
│ ├── devtools-network/ # Network Inspector(HAR)
│ ├── devtools-storage/ # Storage Inspector
│ └── devtools-performance/ # Performance Analyzer
├── javascript/
│ ├── js-parser/ # JsParser(ESTree AST)
│ ├── js-analysis/ # 混淆检测/API 发现/框架检测/SourceMap/Diff
│ └── js-runtime/ # JsRuntimeHook(运行时 Hook)
├── hook/
│ └── hook-engine/ # HookEngine(规则生命周期)
├── mcp/
│ ├── mcp-server/ # Ktor Server + McpServerManager + 认证守卫
│ ├── mcp-tools/ # 461 Tools(40 命名空间枢纽,含 File System 文件系统)
│ ├── mcp-resources/ # 12 个 browser:// 资源
│ └── mcp-prompts/ # 13 个内置 Prompt
├── workspace/
│ ├── workspace-core/ # WorkspaceManager
│ └── workspace-ui/ # 工作区 UI
MCP 协议
Tool 调用示例
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "js.evaluate",
"arguments": {
"expression": "document.title"
}
}
}
核心 Tool 分类
| 分类 | 示例 |
|---|---|
| Browser | browser.open browser.reload browser.screenshot browser.current_url |
| Tab | tab.list tab.create tab.close tab.group |
| DOM | dom.query dom.get_html dom.click dom.get_xpath dom.set_attribute |
| JavaScript | js.evaluate js.parse_ast js.beautify js.detect_obfuscation js.extract_strings |
| Debugger | debugger.set_breakpoint debugger.pause debugger.call_stack debugger.locals |
| Network | network.list network.export_har network.copy_curl network.replay network.mock |
| Hook | hook.create hook.fetch hook.websocket hook.function hook.export |
| Storage | storage.cookies storage.local storage.indexeddb storage.clear |
| Page | page.inspect page.framework_detect page.api_list page.performance |
| Reverse Engineering | re.find_api re.find_token re.detect_obfuscator re.trace_function re.generate_report |
| File System | file.read file.write file.search file.list file.open file.share file.hash file.zip file.unzip |
File System 工具
逆向工作流闭环的关键补充:AI 下载 JS/HAR 后可离线阅读与检索(file.read / file.search),逆向成果可直接落盘为脚本文件(file.write / file.append),并可通过 file.open / file.share 把产物交给设备上的其他应用或用户。
| 工具 | 说明 |
|---|---|
file.workdir / file.set_workdir |
查看 / 切换工作目录 |
file.read |
读取文件(文本按行分页 offset/limit,超长行按列分段,minified 单行大文件必备;二进制按字节偏移 base64 分页;响应带续读游标) |
file.write / file.append |
创建覆盖 / 追加写入(文本或 base64) |
file.list / file.tree |
列目录(通配符过滤、递归)/ 树形结构 |
file.stat / file.exists |
元信息 / 存在性检查 |
file.mkdir / file.delete |
建目录 / 删文件(删除为高风险) |
file.copy / file.move |
复制(递归)/ 移动重命名 |
file.search |
本地 grep:文本/正则、目录递归、超长压缩行自动截取匹配点上下文窗口 |
file.open / file.share |
唤起系统应用打开 / 系统分享面板 |
file.hash |
MD5 / SHA-1 / SHA-256 流式哈希 |
file.zip / file.unzip |
打包 / 解压(内置 Zip Slip 防护) |
路径规则:相对路径基于工作目录(/storage/emulated/0/Download/WebReverseMCP),绝对路径直接使用;/proc /sys /dev /system 等系统目录拒绝访问。browser.download 额外支持 data: URI 直接落盘。
Resources
browser://current-page browser://dom browser://console
browser://network browser://cookies browser://local-storage
browser://sources browser://tabs browser://debugger
browser://performance browser://hooks browser://workspace
browser://page/{tabId} browser://network/{tabId}
Prompts
analyze_page · analyze_javascript · analyze_network · analyze_login_flow
analyze_api · analyze_obfuscation · find_function
trace_function · trace_request · debug_javascript · inspect_dom
analyze_storage · generate_reverse_engineering_report
快速开始
环境要求
- Android Studio Ladybug+
- JDK 17
- Android SDK 35
构建
# 克隆项目
git clone
cd WebReverseMCP
# 构建 Debug APK
./gradlew :app:assembleDebug
# 构建 Release APK(未配置签名时自动回退 debug 签名)
./gradlew :app:assembleRelease
运行
- 在 Android 设备上安装 APK
- 确保 Android 与 AI Agent 处于同一局域网
- 打开 App → MCP Server 页面 → 启动 Server
- 在 AI Agent 侧配置 MCP 连接
AI Agent 连接指南
Claude Desktop / Cursor 配置
{
"mcpServers": {
"webreverse": {
"url": "http://:8787/mcp",
"headers": {
"Authorization": "Bearer "
}
}
}
}
MCP HTTP 连接
MCP 对外仅提供 Streamable HTTP:
http://:8787/mcp
客户端通过 POST /mcp 发送 MCP JSON-RPC 请求;服务器不提供其他 MCP Transport。
安全模型
- 22 个权限作用域(READ_PAGE / EXECUTE_JS / READ_NETWORK / MODIFY_NETWORK / INSTALL_HOOK / READ_FILE / WRITE_FILE 等)
- 4 档授权范围:一次 / 当前网站 / 当前 Tab / 永久
- 敏感数据默认脱敏:
[REDACTED_COOKIE]/[REDACTED_TOKEN]/[REDACTED_SECRET] - 认证:API Token(Authorization Bearer / X-MCP-Token 请求头)+ IP Allowlist + 仅局域网模式;绑定非回环地址时强制要求 Token
终端与 Host Tools
App 内置终端能力,可为 AI Agent 提供 terminal.exec / run_python / run_node 等工具。其中 Git、Python、Perl 等运行时工具(Host Tools)通过 Termux 官方软件源(含中科大、南京大学镜像)在运行时下载预编译 .deb 包,解压到应用私有目录后以独立子进程方式执行。
关于 Termux 开源协议的合规说明:
- 本项目不包含、不复制、不修改 termux-app 与 termux-packages 的任何源代码,所有代码均为自研 Kotlin 实现,因此不构成 GPL-3.0 的衍生作品。
- 应用 APK 不内置 任何 Termux 二进制文件,仅充当包下载客户端(与
apt/pkg的工作方式相同),不构成对软件包的再分发。 - 各软件包保留其上游原始许可证(如 git 为 GPL-2.0、python 为 PSF、perl 为 Artistic/GPL),
.deb包内自带的许可证文件在解压时被完整保留。 - 若设备已安装 Termux,应用会以只读方式扫描其可执行文件目录作为命令解析来源之一,不会修改 Termux 的任何文件。
完整第三方组件清单见 THIRD_PARTY_NOTICES.md。
商标声明:Termux 是 Termux 团队的商标。本项目与 Termux 团队无任何隶属、赞助或背书关系。
开源许可
本项目代码遵循 MIT License 发布。
第三方组件及其许可情况见 THIRD_PARTY_NOTICES.md。
免责声明
本工具仅用于学习研究,请仅对自己拥有或已获得合法授权的网站进行分析。 使用本工具产生的一切法律责任由使用者自行承担。
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"webreverse": {
"url": "http://<Android-IP>:8787/mcp",
"headers": {
"Authorization": "Bearer <Your-Token>"
}
}
}
}