DarkRideApp/DarkRide

GitHub: DarkRideApp/DarkRide

DarkRide 是一个自托管的 AI 驱动移动应用逆向工程与网络流量分析一体化工作台。

Stars: 4 | Forks: 0

DarkRide

面向移动逆向工程的 AI 原生工作台。

适用于移动端渗透测试人员、漏洞赏金猎人和应用逆向工程师。

网站 · 安装 · 路线图 · 讨论 · 专业版

License: AGPL-3.0-only CI Commercial license available

DarkRide dashboard
自托管工具包,用于 Android 设备控制、网络流量捕获、APK 分析和 Frida 插桩——全部通过单一 Web UI 驱动,配备 TypeScript 自动化引擎和插件系统以扩展功能。iOS 目前仅支持 USB 设备发现和流量捕获;屏幕控制、自动化和 Frida 仅支持 Android([参见路线图](ROADMAP.md))。 ## 功能特性 - **实时设备控制** — 通过 scrcpy 进行 H.264 流传输,浏览器中使用 WebCodecs 解码;自适应码率(500 kbps–8 Mbps);adb-screencap 回退;硬件按键;每台设备独立的代理/TLS 配置。 - **TypeScript 自动化引擎** — Monaco 编辑器,提供完整的 `DeviceAPI` 类型定义(点击、滚动、getText、waitFor、DOM 查询、HTTP);cron/HTTP 触发器;弹窗规则系统;会话历史记录,包含日志、截图和捕获的流量;通过 Anthropic、Gemini、Ollama、OpenRouter 或 Codestral 实现 AI 补全。 - **HTTPS 流量捕获** — WireGuard 透明代理 + mitmproxy;在已 root 设备上自动注入 SSL;按设备/方法/状态/主机/路径过滤;域名屏蔽/隐藏列表;WebSocket 捕获,支持可插拔协议解码器;TLS 指纹伪装(Chrome 120 Android)。 - **Frida 插桩** — 浏览器内 IDE、脚本库、spawn/attach、实时输出;托管的 `frida-server` 版本推送到设备;针对未 root 设备的 Frida Gadget 注入;按应用/版本/Frida 版本作为键的 APK 缓存。 - **代理池** — 健康监控的代理轮换;NordVPN SOCKS5 按国家路由;服务端 `device.httpGet/Post` 辅助方法。 - **APK 分析** — 反编译、资源提取、React Native / Hermes bundle 检查、protobuf schema 提取、AI 驱动的版本差异分析、跨设备版本追踪。 - **AI agent** — 具备工具访问能力的页面感知聊天;`/mcp/sse` 上的 MCP 服务器;为 Claude Code CLI 自动生成 SKILL.md;REST `POST /v1/tools/{name}`;来自自动化脚本的 `ctx.tools`。 - **插件系统** — 插件可注册导航项、页面、API 路由、AI 工具、数据库表、任务、设置、通知事件、命令、协议解码器以及插件间钩子。`darkride plugin create` 可快速搭建新插件。参见[插件开发指南](docs/plugins/README.md);`plugins/kitchen-sink/` 演示了所有扩展点。 - **会话历史与调试** — 过滤、固定和重放自动化运行;选择器调试器,用于针对捕获的快照测试 DOM 查询。 ## 安装说明 ### 前置条件 必需: - **Node.js 22+**(推荐 24)— 后端运行时和构建工具 - **Python 3.12+** — 用于设备、流量和 APK 桥接(`mitmproxy>=12.2.1` 是约束条件) - **ADB**(Android Platform Tools)— 连接 Android 设备所必需 按功能可选: - **Java JDK 11+** — APK 分析功能所需(jadx / apktool);工具本身在首次使用时自动下载 - **WireGuard 工具**(`wg`、`wg-quick`)— 在已 root Android 上进行 HTTPS 流量捕获所需 - **`xz`**(Linux/macOS)或 **7-Zip**(Windows)— 首次使用 Frida 时解压 frida-server 下载所需 ### Docker(最快——无需安装任何东西) 每次推送到 `main` 分支时,预构建镜像会发布到 GitHub Container Registry: ``` docker run -d --name darkride \ -p 3000:3000 \ -e HOST=0.0.0.0 \ -e DARKRIDE_BOOTSTRAP_ADMIN_USERNAME=admin \ -e DARKRIDE_BOOTSTRAP_ADMIN_PASSWORD="$(openssl rand -hex 16)" \ -v darkride-data:/app/data \ ghcr.io/darkrideapp/darkride:latest docker logs darkride 2>&1 | grep -E "bootstrap|claim" # find the admin password printed in logs ``` 打开 `http://localhost:3000/ui`。容器内置 Node 24 + Python 3.13 + `adb` + mitmproxy/frida/pymobiledevice3 Python 桥接,通过 `--device` 挂载(Linux 主机)或通过网络设置 `adb connect` 后即可与 USB 连接的 Android 设备通信。 可用标签:`:latest` 跟随 main 分支;`:sha-<7chars>` 固定到特定构建版本以便回滚。 ### 安装与运行(开发模式) ``` # 克隆并安装 Node 依赖项 git clone https://github.com/DarkRideApp/DarkRide.git darkride cd darkride npm install # 启动开发服务器(热重载)。 # 首次启动会创建 .venv/ 并 pip 安装 Python 依赖项 — 大约需要 1 分钟。 npm run dev ``` 打开 http://localhost:5173/ui — 通过 USB 连接 Android 设备并启用 USB 调试。(iOS 设备可通过 USB 显示,但完整功能目前仅支持 Android——参见[路线图](ROADMAP.md)。) ### 生产环境 ``` npm run build npm start # serves on http://localhost:3000 ``` DarkRide 默认绑定到 `127.0.0.1`。内置多用户认证(argon2id、基于范围的 RBAC、会话、CSRF、可选的 API 密钥和 OAuth 提供商)。首次启动时会打印一次性认领 URL 以创建管理员账户,或使用 `DARKRIDE_BOOTSTRAP_ADMIN_*` 环境变量进行无人值守设置。在暴露到非受控网络之前,请查看 [SECURITY.md](SECURITY.md)。 ## 技术栈 | 层级 | 技术 | |-------|------------| | 后端 | TypeScript, Express, WebSockets | | 前端 | React, Vite, Monaco Editor | | 数据库 | SQLite(better-sqlite3, Drizzle ORM) | | 设备控制 | scrcpy-server(H.264/WebCodecs)、minicap、minitouch、uiautomator2 | | 流量捕获 | mitmproxy, WireGuard | | Frida | frida-tools, Frida Gadget 注入 | | AI 补全 | Anthropic, Gemini, Ollama, OpenRouter | | 测试 | Vitest, React Testing Library, supertest | ## 架构 单个 Node.js 进程:Express + WebSocket API → 服务 → SQLite。Python 桥接(`uiautomator2`、`mitmproxy`、`frida`)作为子进程由后端管理。前端是一个 React SPA,在生产环境中由同一进程提供服务。 完整架构分解参见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md),本地开发工作流参见 [docs/development.md](docs/development.md)。 ## 文档 **入门指南** - [开发指南](docs/development.md) — 本地开发工作流、多仓库插件设置、环境变量 - [环境变量](docs/environment.md) — 所有 `DARKRIDE_*` / 运行时配置项及默认值 - [安装插件](docs/installing-plugins.md) — 市场 UI、CLI、签名模型 - [故障排除](docs/troubleshooting.md) — 常见错误及修复方法 - [容器部署](Dockerfile) — 用于容器化运行 DarkRide 的 Dockerfile **插件开发** - [插件开发指南](docs/plugins/README.md) — 概述、hello world、快速参考表 - [生命周期和 ctx 接口](docs/plugins/lifecycle.md) - [UI:导航、页面、插槽](docs/plugins/ui.md) - [后端:API、数据库、工具、任务、设置、钩子、文件](docs/plugins/backend.md) - [前端集成](docs/plugins/frontend.md) - [测试](docs/plugins/testing.md) **参考** - [REST API](docs/api.md) — 用于对 DarkRide 进行脚本化的端点列表 - [架构](docs/ARCHITECTURE.md) — 高层设计、数据流、插件模型 - [视频流可靠性](docs/video-streaming-reliability.md) — H.264 管道的设计说明 **项目** - [路线图](ROADMAP.md) - [更新日志](CHANGELOG.md) - [贡献指南](CONTRIBUTING.md) - [安全策略](SECURITY.md) - [法律声明](LEGAL.md) - [商业版 / 专业版 / 咨询](COMMERCIAL.md) ## 截图 | | | |---|---| | ![设备视图](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/4d0360005f002840.png) | ![自动化编辑器](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6c063af154002841.png) | | ![流量](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/54ba2c21e3002841.png) | ![Frida](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8d36a93dc3002842.png) | | ![会话](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e52903d54a002843.png) | | ## 资助 DarkRide 由一名开发者构建和维护。[DarkRide Pro](COMMERCIAL.md) 支持持续开发;也提供商业许可和咨询服务。 ## 许可证 [GNU Affero General Public License v3.0](LICENSE)。需要在不承担 AGPL 义务的情况下使用 DarkRide 的组织可获取商业许可——参见 [COMMERCIAL.md](COMMERCIAL.md)。
标签:ADB调试, AI原生工具, Android逆向, APK分析, Bug Bounty, Frida插桩, iOS安全, scrcpy, TCP SYN 扫描, TLS拦截, TypeScript自动化, Web UI, XXE攻击, 云资产清单, 可自定义解析器, 暗黑模式, 移动渗透测试, 移动端安全, 网络流量分析, 自动化攻击, 自托管, 设备控制, 请求拦截, 逆向工具, 逆向工程