@@ -0,0 +1,625 @@
# R0Guard 项目完整总结报告
> 版本:**1.0.39** | 平台:**Windows x64** | 目标游戏:**CS:GO / CS2**
> 文档基于当前代码库完整梳理,涵盖客户端、注入 DLL、AI 图片检测服务、主服务端四大模块。
---
## 一、项目概述
**R0Guard ** 是一套面向 CS:GO / CS2 的**完整反作弊系统**,由以下部分组成:
| 模块 | 技术栈 | 角色 |
| -------------- | ---------------------------- | -------------------------------------------------- |
| **injector/ ** | C++17 / Win32 | 主客户端(`R0Guard.exe` ),负责注入、监控、云端通信、远程控制台 |
| **dll/ ** | C++17 / MinHook / ImGui | 游戏内检测 DLL( `R0GuardDll64.dll` / `R0GuardDll32.dll` ) |
| **ai-service/ ** | 独立部署(Python/Node 等) | **AI 图片检测服务 ** :接收客户端截图,识别作弊 UI/外挂界面,将检测结果事件上报主服务端 |
| **server/ ** | Node.js + MySQL + Redis | **主服务端 ** :认证、事件入库、黑白名单、自动封禁、客户端端口/控制台地址记录 |
| **common/ ** | 共享头文件 | 协议、日志、加密、工具库 |
| **resources/ ** | 证书、Dashboard HTML、RSA 密钥 | 运行时资源 |
系统采用 **DLL 注入 + 进程内扫描 + 截图 AI 识别 + 云端上报 + FRP 远程管控 ** 的架构。客户端定时截图先上传至 **AI 图片检测服务 ** 做视觉分析,AI 服务再将检测事件转发至 **主服务端 ** 统一入库与处置;心跳、进程内检测等直连主服务端;**远程控制台**由客户端本地 HTTP 服务 + **frpc 内网穿透 ** 映射到公网供管理员访问。通信支持 mTLS 双向认证、RSA/AES 加密,并可选 VMProtect 代码加固。
---
## 二、系统架构
``` mermaid
flowchart TB
subgraph Client["客户端 (R0Guard.exe)"]
HTTPSrv["本地 HTTP 服务\n127.0.0.1:54425\n(Dashboard + API)"]
FRPC["frpc 客户端\n(resources/frpc.exe)"]
TCP["TCP Client\n(mTLS → 主服务端)"]
Monitors["系统监控\n进程/磁盘/USB/杀软"]
Screenshots["多引擎截图\n(ScreenshotManager)"]
Injector["DLL 注入器"]
Protector["进程 DACL 保护"]
end
subgraph Game["游戏进程 (cs2.exe / csgo.exe)"]
DLL["R0GuardDll\n6 类检测 + Overlay"]
end
subgraph AI["AI 图片检测服务"]
AIIngest["截图接收 API"]
AIEngine["视觉模型推理\n(外挂菜单/UI/Overlay 识别)"]
AIEvent["事件组装与上报"]
end
subgraph FRP["FRP 服务端 (frps)"]
FRPS["公网入口\n域名:端口"]
end
subgraph Server["主服务端 (Node.js)"]
TCPSrv["TCP Server\n:9443"]
API["REST API\n:3000"]
EventProc["事件处理\n黑白名单 / 自动封禁"]
DB[(MySQL\nr0guard_anticheat)]
Redis[(Redis)]
Platform[(平台库 arena)]
end
Browser["浏览器 / 平台管理员"]
Injector -->|命名管道| DLL
Screenshots -->|HTTPS 上传截图| AIIngest
AIIngest --> AIEngine
AIEngine --> AIEvent
AIEvent -->|检测事件 HTTP| EventProc
Client -->|心跳 / 进程内检测| TCPSrv
TCPSrv --> EventProc
EventProc --> DB
TCPSrv --> Redis
HTTPSrv -->|本地反向代理| FRPC
FRPC -->|内网穿透| FRPS
Browser -->|HTTPS 访问映射地址| FRPS
FRPS --> FRPC
FRPC --> HTTPSrv
Client -->|上报 FRP 远程地址 / 本地端口| API
API --> Platform
```
### 数据流分工
| 数据类型 | 路径 | 说明 |
|---------|------|------|
| **定时反作弊截图 ** | 客户端 → AI 图片检测服务 → 主服务端 | AI 服务完成视觉分析后,以结构化事件(如 `ai_screenshot_detection` )上报主服务端 |
| **进程内检测事件 ** | 客户端 → 主服务端 (mTLS TCP) | DLL 注入、Hook、CRC 等 6 类检测 |
| **心跳 / 认证 / 白名单 ** | 客户端 → 主服务端 (mTLS TCP) | 会话维持、在线状态、黑白名单同步 |
| **远程控制台 ** | 浏览器 → FRP 公网入口 → frpc → 客户端本地 HTTP | Dashboard、FLV 直播、按需截图预览等,经 **frp 映射 ** 访问 `127.0.0.1:54425` |
| **控制台地址登记 ** | 客户端 → 主服务端 REST API | 登录后上报 FRP 映射后的远程 URL 或本地端口(`upload_client_port` ),供平台查询 |
| **进程/磁盘/USB 等监控 ** | 客户端 → 主服务端 | 系统级行为事件 |
### 截图 → AI → 主服务端 流程
```
ScreenshotManager 定时截图 (GDI/DXGI/DWM/...)
↓
客户端上传截图 + 元数据 (uid, steam_id, 截图类型, 时间戳, 机器码)
↓
AI 图片检测服务
├─ 接收并暂存/落盘截图
├─ 调用视觉模型推理 (外挂菜单、透视 UI、自瞄界面等)
├─ 输出置信度、标签、可疑区域等
└─ 组装检测事件
↓
主服务端
├─ 写入 ac_events / ac_screenshots
├─ 查黑白名单 → 自动封禁
└─ 供控制台 / 平台系统查询
```
**关键设计: **
- 客户端在本地启动 **HTTP 服务 ** (默认 `127.0.0.1:54425` ,占用时回退动态端口),承载 Dashboard 及全部 `/api/dashboard/*` 路由。
- 随附 **frpc.exe ** (FRP 客户端),将本地 HTTP 端口映射到 **FRP 服务端(frps) ** 的公网域名/端口,实现远程访问。
- 客户端登录后通过 REST API( `upload_client_port` )将 **FRP 映射后的远程访问地址 ** 或本地端口上报云端,平台系统据此拼接控制台入口 URL。
- GSI 游戏状态仍走本地 HTTP 的 `/api/gamestate` ( CS2 本机 POST)。
- **AI 图片检测服务独立部署**;定时反作弊截图走 AI 链路,控制台按需预览截图在客户端本地 HTTP 直接响应。
- 远程控制台访问路径:**浏览器 → FRP 公网入口 → frpc → 本地 HTTP**,不经过主服务端转发。
---
## 三、项目目录结构
```
R0Guard/
├── CMakeLists.txt # 主构建配置 (v1.0.39)
├── build.ps1 / build.bat # 构建脚本
├── build_all_protected.bat # VMProtect 加固构建
├── protect.bat # 保护脚本
│
├── common/ # 公共库
│ ├── protocol.h # 命名管道 / 共享内存协议
│ ├── logger.h # 日志(可编译期剥离)
│ ├── secure_string.h # 安全字符串
│ ├── vmprotect_sdk.h # VMProtect 标记宏
│ ├── httplib.h # 嵌入式 HTTP 库
│ ├── utils.h / vdf_parser.hpp
│ └── json/ # JSON 解析
│
├── injector/ # 主程序 (~40 个源文件)
│ ├── main.cpp # 入口:GUI 托盘 + 服务初始化
│ ├── http_server.cpp # 本地 HTTP 服务 + ~93 条 Dashboard/API 路由
│ ├── tcp_client.cpp # mTLS TCP 通信
│ ├── anticheat_api.cpp # 反作弊 API 封装
│ ├── cloud_api.cpp # 云端 REST API (RSA 加密)
│ ├── game_launcher.cpp # CS2/CSGO 启动
│ ├── steam_helper.cpp # Steam 集成
│ ├── steam_worker.cpp # 独立 Steam 信息进程
│ ├── screenshot_manager.cpp # 定时多引擎截图
│ ├── live_stream.cpp # FLV H.264 直播
│ ├── process_monitor.cpp # 进程启动/退出监控
│ ├── process_protector.cpp # 游戏进程 DACL 保护
│ ├── disk_monitor.cpp # 磁盘/下载记录监控
│ ├── drive_monitor.cpp # USB 驱动器插拔监控
│ ├── antivirus_detector.cpp # 杀毒软件检测
│ ├── file_detector.cpp # 文件特征检测
│ ├── network_test.cpp # 网络诊断工具集
│ ├── dashboard_handler.cpp # 远程控制台
│ ├── crash_handler.cpp # 崩溃转储
│ ├── update_service.cpp # 自动更新
│ ├── startup_manager.cpp # 单实例/自启/Defender 白名单
│ ├── tpm_machine_id.cpp # TPM 机器码
│ ├── pinned_dns.cpp # 写死 IP 直连 + 隐藏 SNI
│ └── self_module.cpp # 自身模块定位
│
├── dll/ # 游戏内检测 DLL
│ ├── detector.cpp # 主检测调度器
│ ├── module_detector.cpp # DLL 注入检测
│ ├── thread_detector.cpp # 远程线程检测
│ ├── hook_detector.cpp # 函数 Hook 检测
│ ├── memory_detector.cpp # 可疑内存检测
│ ├── crc_checker.cpp # 代码段 CRC 校验
│ ├── hardware_bp_detector.cpp# 硬件断点检测
│ ├── logo_overlay.cpp # D3D Overlay + ImGui
│ ├── video_player.cpp # 游戏内视频播放
│ ├── pipe_client.cpp # 与注入器通信
│ └── minhook/ # API Hook 库
│
├── ai-service/ # AI 图片检测服务(独立部署)
│ ├── 截图接收 API # 接收客户端上传的定时截图
│ ├── 视觉模型推理 # 外挂 UI / 菜单 / Overlay 识别
│ └── 事件上报客户端 # 将 AI 检测结果推送至主服务端
│
├── server/ # 主服务端 (Node.js)
│ ├── src/index.js # 入口
│ ├── src/socket/ # TCP + 协议 + 加密
│ ├── src/database/ # MySQL + Redis
│ └── docs/ # 服务端文档
│
├── resources/ # 运行时资源
│ ├── certs/ # TLS 证书 (ca.crt, client.pfx)
│ ├── dashboard.html # 远程控制台 Web UI
│ ├── frpc.exe # FRP 客户端(内网穿透,映射本地 HTTP 到公网)
│ └── rsa_keys.h # RSA 公钥
│
└── third_party/vmprotect/ # VMProtect SDK (可选)
```
---
## 四、核心功能详解
### 4.1 游戏内检测(DLL 模块)
注入到 `cs2.exe` ( 64 位)或 `csgo.exe` (32 位)后,通过命名管道与主程序通信,执行 **6 类检测 ** :
| # | 检测类型 | 事件名 | 说明 |
| --- | -------------- | --------------------- | ------------------------------------------------------------------- |
| 1 | **DLL 注入检测 ** | `dll_injection` | 监控新加载模块,验证数字签名,白名单机制(Microsoft、Valve、NVIDIA、AMD 等) |
| 2 | **远程线程检测 ** | `remote_thread` | 检测起始地址不在已知模块范围内的线程,识别 Shellcode / Manual Map |
| 3 | **函数 Hook 检测 ** | `function_hook` | 监控 kernel32、ntdll、user32、ws2_32 等关键 API,检测 JMP/PUSH+RET/MOV+JMP 等模式 |
| 4 | **代码段 CRC 校验 ** | `crc_mismatch` | 定期校验 client.dll、engine.dll 等核心模块 `.text` 段 CRC32 |
| 5 | **可疑内存检测 ** | `suspicious_memory` | 扫描 PAGE_EXECUTE_READWRITE 等可疑内存属性,识别注入代码 |
| 6 | **硬件断点检测 ** | `hardware_breakpoint` | 检查所有线程 DR0–DR3 调试寄存器 |
**附加能力: **
- **Logo Overlay**: D3D9( CSGO) / D3D11( CS2) Hook + ImGui,游戏内播放 Logo/作弊提示/VIP 视频
- **死亡状态共享内存**:与 GSI 联动显示死亡图标
- **机器码显示**:左上角显示 TPM 机器码
### 4.2 客户端主程序(injector)
#### A. 游戏与 Steam 集成
| 功能 | 说明 |
| ----------- | ------------------------------------- |
| CS2/CSGO 启动 | 支持启动参数、Steam 路径配置 |
| Steam 账号管理 | 获取/切换 Steam 账号、Steam ID |
| GSI 游戏状态 | 接收 CS2 Game State Integration POST 数据 |
| 游戏内命令 | 向游戏发送控制台命令 |
| 游戏版本检测 | 读取已安装游戏版本 |
#### B. 系统监控与上报
| 模块 | 功能 |
| --------------------- | --------------------------------------------------- |
| **ProcessMonitor ** | 监控全系统进程启动/退出,过滤系统白名单进程后上报 |
| **ProcessProtector ** | 对 CS2/CSGO 进程写入 DACL「拒绝访问」ACE,阻止外部 OpenProcess 读写内存 |
| **DiskMonitor ** | 监控文件系统变化,读取 Chrome/Edge/Firefox/迅雷/IDM 等下载记录 |
| **DriveMonitor ** | 监控 USB 等可移动驱动器插拔 |
| **AntivirusDetector ** | 检测已安装杀毒软件 |
| **FileDetector ** | 扫描文件特征:易语言、VMProtect、SProtect、远程注入/Hook API 等 |
#### C. 截图与直播
支持 **7 种截图引擎 ** ,可定时错开执行:
| 引擎 | 技术 |
| ---------- | --------------- |
| GDI | 基础屏幕截图 |
| DXGI | DirectX 桌面复制 |
| DWM | 注入 dwm.exe 截图 |
| Magnifier | Windows 放大镜 API |
| NVIDIA GPU | GPU 帧缓冲截取 |
| AMD GPU | GPU 帧缓冲截取 |
- 定时截图上传 **AI 图片检测服务 ** (默认 6 分钟间隔,各类型错开 30 秒);AI 服务完成推理后将检测事件上报主服务端,不在客户端或主服务端本地做模型推理
- **FLV H.264 直播流**: Media Foundation 编码 + FLV 封装,经 FRP 映射后的远程 URL 推送(不经过 AI 服务)
#### D. 远程控制台(Dashboard + FRP)
远程控制台采用 **本地 HTTP + FRP 内网穿透 ** 方案:
1. `R0Guard.exe` 在本地监听 HTTP(默认 `127.0.0.1:54425` ),提供 Dashboard 页面及约 **93 条 API 路由 ** 。
2. 随附的 **frpc.exe ** 读取 FRP 配置,将本地端口映射到 **frps 服务端 ** 分配的公网域名/端口。
3. 客户端登录后将映射地址上报云端;平台管理员通过 **FRP 公网 URL ** 远程打开该用户的控制台。
| 分类 | 功能 |
| ------------ | ------------------------------------ |
| **系统信息 ** | CPU/内存/磁盘/网络状态 |
| **进程管理 ** | 列出/终止进程、DLL 注入记录 |
| **截图预览 ** | 7 种引擎实时截图 |
| **FLV 直播 ** | 实时屏幕直播 + 统计 |
| **文件管理 ** | 浏览/读/写/上传/下载/删除/重命名/建目录 |
| **文件检测 ** | 单文件/批量特征扫描 |
| **检测记录 ** | 查看/清除本地检测日志 |
| **网络诊断 ** | Ping、TCPing、测速、Traceroute、DNS、RealIP |
| **磁盘/注册表测试 ** | 磁盘读写、注册表访问测试 |
| **日志查看 ** | 内存日志浏览与清除 |
**FRP 访问链路: **
```
管理员浏览器
→ https://<frp-分配域名>:<端口>/dashboard
→ frps (FRP 服务端)
→ frpc (客户端内运行)
→ 127.0.0.1:54425 (R0Guard 本地 HTTP)
→ dashboard.html / API 响应 (含 FLV 流式)
```
> 安全说明:任意命令执行接口已永久移除。控制台经 FRP 暴露到公网,需配合 FRP 鉴权 token、HTTPS 及平台侧访问控制使用。
#### E. 云端通信
| 通道 | 协议 | 用途 |
|------|------|------|
| **TCP Socket → 主服务端 ** | mTLS (双向证书) + RSA/AES-GCM | 认证、心跳、进程内检测上报 |
| **HTTPS → AI 图片检测服务 ** | HTTPS (+ 可选 mTLS) | **定时反作弊截图上传 ** |
| **HTTPS → 主服务端 ** | HTTPS / 内网 API Key | AI 服务上报检测事件;客户端上报 FRP 远程地址/本地端口 |
| **REST API → 主服务端 ** | HTTPS + RSA 分段加密 | 机器 Token、Steam Token、`upload_client_port` 、硬件信息采集 |
| **HTTP 本地服务 ** | `127.0.0.1:54425` | Dashboard、控制台 API、GSI 接收 |
| **FRP 穿透 ** | frpc → frps | 将本地 HTTP 映射到公网,供远程访问控制台 |
**TCP 消息类型(客户端 ↔ 主服务端): **
| 类型 | 方向 | 描述 |
|------|------|------|
| 0x4000/0x4001 | C↔S | 认证请求/响应 |
| 0x1000 | C→S | 心跳 |
| 0x1001 | C→S | 检测报告(进程内 6 类检测) |
| 0x1002 | C→S | 模块加载 |
| 0x4007/0x4008 | C↔S | 白名单请求/响应 |
| 0x2000/0x2001 | S→C | 初始化/开始扫描 |
> 说明:控制台经 FRP 直接访问客户端本地 HTTP;定时截图上传 AI 图片检测服务,AI 分析完成后以 REST API 向主服务端写入事件与截图索引。
#### F. 客户端基础设施
| 功能 | 说明 |
| ------------ | ------------------------------- |
| 本地 HTTP 服务 | 默认 `127.0.0.1:54425` ,提供 Dashboard 与 API |
| FRP 内网穿透 | frpc 将本地 HTTP 映射到 frps 公网入口 |
| 端口/地址上报 | 登录后调用 `upload_client_port` 上报 FRP 远程 URL |
| 单实例锁 | Mutex 防止重复运行 |
| 开机自启 | 计划任务(无 UAC 弹窗) |
| URL 协议 | `r0guard://` 协议注册 |
| Defender 白名单 | 自动添加程序目录 |
| 防节流 | PowerRequest 防止 Windows 降低后台优先级 |
| TPM 机器码 | 基于 TPM 的唯一硬件标识 |
| 崩溃转储 | MiniDump 生成与上报 |
| 自动更新 | 版本检测与下载 |
| Pinned DNS | 写死 IP 直连、隐藏 TLS SNI、无 DNS 查询 |
| 错误上报 | 全局异常捕获与云端上报 |
#### G. 网络诊断工具
内置完整网络测试套件(供 Dashboard 调用):
- ICMP Ping / 流式 Ping
- TCPing
- HTTP 测速(含跳转链追踪)
- Traceroute
- DNS 查询
- RealIP 检测(含代理/VPN 识别)
- FindPing(最优节点探测)
---
### 4.3 AI 图片检测服务(ai-service/)
独立于主服务端部署的**视觉检测微服务**,专门处理客户端定时上传的游戏截图。
#### 职责
| 环节 | 说明 |
|------|------|
| **截图接收 ** | 提供 HTTPS 上传接口,接收客户端多引擎截图及元数据(uid、steam_id、截图类型、分辨率、时间戳) |
| **图像推理 ** | 调用视觉模型识别外挂菜单、透视 UI、自瞄面板、可疑 Overlay 等 |
| **结果输出 ** | 生成标签、置信度、可疑区域坐标(可选)及原始截图存储路径 |
| **事件上报 ** | 将结构化检测事件推送至主服务端 REST API,由主服务端统一入库与触发封禁 |
#### 典型事件字段(上报主服务端)
| 字段 | 说明 |
|------|------|
| `event_type` | 如 `ai_screenshot_detection` |
| `uid` / `steam_id` | 用户标识 |
| `screenshot_type` | gdi / dxgi / dwm / mag / nvidia / amd |
| `labels` | AI 识别标签列表 |
| `confidence` | 整体或各标签置信度 |
| `screenshot_url` / `screenshot_id` | 截图存储引用 |
| `model_version` | 模型版本,便于回溯 |
| `detected_at` | 检测时间 |
#### 与主服务端的关系
- AI 服务**不处理**用户认证、心跳、黑白名单、自动封禁——这些由主服务端负责。
- 主服务端收到 AI 事件后,与普通检测事件一样进入 `ac_events` / `ac_screenshots` ,执行黑白名单匹配与 `auto_ban` 逻辑。
- AI 服务可独立扩缩容(GPU 节点),不影响主服务端 TCP 连接与会话管理。
---
### 4.4 主服务端(server/)
#### 技术栈
- **Runtime**: Node.js ≥ 18
- **数据库**: MySQL 5.7+(反作弊库 `r0guard_anticheat` + 平台库 `arena` )
- **缓存**: Redis 6.0+
- **通信**: Express REST + mTLS TCP + Socket.IO
#### 监听端口
| 端口 | 用途 |
| -------- | ---------------------------- |
| **3000 ** | REST API、健康检查、静态文件、Socket.IO |
| **9443 ** | mTLS TCP(生产环境常用 20058) |
> 控制台公网入口由 **FRP 服务端(frps) ** 提供,Dashboard 请求不经主服务端 3000/9443 转发。
#### 数据库表(反作弊库)
| 分类 | 表 | 用途 |
| --- | ------------------------------------------------- | ----------------- |
| 管理 | `ac_admins` , `ac_operation_logs` | 管理员、操作日志 |
| 会话 | `ac_sessions` , `ac_heartbeats` , `ac_machine_info` | 用户会话、心跳、机器信息 |
| 事件 | `ac_events` , `ac_screenshots` , `ac_uploads` | 检测事件(含 AI 截图检测 `ai_screenshot_detection` )、截图索引、上传文件 |
| 检测 | `ac_cheat_features` | 作弊特征详细记录 |
| 黑名单 | `ac_hash/signer/path/feature_blacklist` | 哈希/签名者/路径/综合特征黑名单 |
| 白名单 | `ac_hash/signer/path/feature_whitelist` | 对应白名单 |
| 封禁 | `ac_ban_records` | 封禁记录 |
| 其他 | `ac_error_reports` | 客户端错误报告 |
#### 核心业务流程
```
客户端认证 → 写入 ac_sessions
↓
frpc 启动 → 映射本地 HTTP 到 FRP 公网地址 → 上报远程 URL (upload_client_port)
↓
心跳 (5s 间隔) → 更新在线状态
↓
进程内检测事件 (DLL/Hook/CRC 等) → 提取特征 → 查黑白名单
↓
定时截图 → AI 图片检测服务 → 视觉推理 → AI 检测事件上报主服务端
↓
主服务端入库 (ac_events / ac_screenshots) → 查黑白名单
↓
命中黑名单 + auto_ban=1 → 自动封禁 (调用平台 API)
```
#### 远程控制台
```
用户客户端
├─ R0Guard.exe 监听 127.0.0.1:54425 (Dashboard + API)
└─ frpc.exe 连接 frps,映射为 https://<子域名>.<frp域名>:<端口>
↓
平台管理员浏览器 → FRP 公网 URL → frps → frpc → 本地 HTTP
↓
dashboard.html / FLV 直播 / 截图预览 等直接由客户端响应
```
客户端登录后通过 `upload_client_port` 或平台 API 登记 **FRP 映射后的访问地址 ** ,供管理员从平台后台一键打开远程控制台。用户离线时 FRP 映射失效,控制台不可访问。
---
## 五、安全与加固
### 5.1 编译期安全
| 机制 | 说明 |
| ----------------- | ---------------------------------- |
| **VMProtect SDK ** | 可选代码虚拟化/变异 + 字符串加密 (`R0VMP_STR_A` ) |
| **日志剥离 ** | `R0_STRIP_LOGS` 编译期消除所有日志字面量 |
| **路由哈希 ** | HTTP 路由以 FNV-1a 哈希存储,二进制无路由明文 |
| **Secure String ** | 敏感字符串编译期加密、运行期临时解密 |
### 5.2 通信安全
| 机制 | 说明 |
| ----------------- | ------------------------------ |
| **mTLS ** | 双向 TLS 证书认证 |
| **RSA + AES-GCM ** | 载荷加密 |
| **Pinned DNS ** | 写死 IP 直连、TLS 隐藏 SNI、不产生 DNS 查询 |
| **证书嵌入 ** | 客户端证书编译为 PE 资源,口令编译期加密 |
### 5.3 运行期安全
| 机制 | 说明 |
| ------------------ | ------------------------------ |
| **本地 HTTP + FRP ** | 控制台经 frpc 穿透到公网,需 FRP token 鉴权 |
| **Dashboard 登录 ** | Dashboard 页面自带登录校验,防止未授权访问 |
| **命令执行移除 ** | 任意 cmd 执行接口已永久删除 |
| **管理员权限 ** | UAC manifest 要求管理员(进程保护需要) |
| **进程 DACL 保护 ** | 阻止外部进程读写游戏内存 |
### 5.4 检测响应
| 严重级别 | 含义 |
| -------- | ------ |
| INFO | 信息性消息 |
| WARNING | 需要关注 |
| CRITICAL | 可能存在作弊 |
| FATAL | 几乎确定作弊 |
服务端支持基于 MD5/SHA256/CRC32/签名者/路径的**黑白名单**,命中黑名单且 `auto_ban=1` 时自动封禁。
---
## 六、构建与部署
### 6.1 客户端构建
**环境要求: ** Windows 10/11 x64、Visual Studio 2019+、CMake 3.15+
``` powershell
# 标准构建
. \ build . ps1
# 产物: build/bin/Release/R0Guard.exe, R0GuardDll64.dll, steam_worker.exe
# VMProtect 加固构建
cmake -DR0_USE_VMPROTECT = ON . .
. \ build_all_protected . bat
```
**产物清单: **
| 文件 | 说明 |
| ------------------ | ------------------ |
| `R0Guard.exe` | 主程序(GUI 托盘,需管理员) |
| `R0GuardDll64.dll` | CS2 检测 DLL (64 位) |
| `R0GuardDll32.dll` | CSGO 检测 DLL (32 位) |
| `steam_worker.exe` | Steam 信息辅助进程 |
### 6.2 AI 图片检测服务部署
AI 服务独立部署,需配置:
- 截图接收地址(客户端 `ScreenshotManager` 上传目标)
- 视觉模型路径或远程推理端点
- 主服务端事件上报 API 地址与鉴权密钥
- 截图存储目录或对象存储(OSS/S3 等)
``` bash
# 示例(具体命令依 ai-service 实现而定)
cd ai-service
cp env.sample .env # 配置 AI_SERVICE_PORT、MAIN_SERVER_URL、MODEL_PATH 等
# 安装依赖并启动 GPU 推理服务
```
### 6.3 主服务端部署
``` bash
cd server
cp env.sample .env # 配置数据库/Redis/证书
npm install
npm run generate-certs # 生成 TLS 证书
npm run db:init # 初始化数据库
npm start # 或 pm2 部署
npm run pm2:logrotate:setup # PM2 日志轮转
```
---
## 七、辅助程序与工具
| 组件 | 说明 |
| ------------------------------- | ----------------------------------------- |
| **steam_worker.exe ** | 独立进程安全获取 Steam 信息,避免主进程加载 steam_api64.dll |
| **resources/frpc.exe ** | FRP 客户端,将本地 HTTP 控制台映射到公网远程访问 |
| **ai-service/ ** | AI 图片检测服务,接收截图并上报检测事件至主服务端 |
| **updater/ ** | 已废弃,更新由 R0Installer.exe 处理 |
| **resources/dashboard.html ** | 远程控制台 Web UI |
| **server/scripts/ ** | 数据库迁移、证书轮换、事件清理等运维脚本 |
| * * .gitea/workflows/deploy.yml** | CI/CD 部署流水线 |
---
## 八、白名单签名者(内置信任)
Microsoft Corporation、Valve、NVIDIA Corporation、AMD、Intel Corporation、Realtek、Logitech、Razer、Corsair、SteelSeries 等。
---
## 九、相关文档索引
| 文档 | 路径 | 内容 |
| ---------- | --------------------------------------- | ------------------- |
| 项目 README | `README.md` | 基础介绍与编译说明 |
| 检测系统 | `server/docs/detection-system.md` | 6 类检测字段与黑名单策略 |
| 数据库表结构 | `server/docs/database-tables.md` | 全部 AC 数据库表 |
| 服务端 README | `server/README.md` | 安装部署与 API |
---
## 十、总结
R0Guard 是一个**功能完整的 CS:GO/CS2 反作弊平台**,涵盖:
1. **6 类游戏内检测 ** (DLL 注入、远程线程、Hook、CRC、可疑内存、硬件断点)
2. **7 种截图引擎 + AI 图片检测 + FLV 直播 **
3. **截图 → AI 服务 → 主服务端 ** 三段式视觉检测链路
4. **全系统监控 ** (进程、磁盘、USB、杀软、文件特征)
5. **游戏进程 R3 层 DACL 保护 **
6. **mTLS 加密云端通信 + FRP 远程控制台 **
7. **完整远程控制台 ** (进程/文件/截图/直播/网络诊断,经 frp 映射访问)
8. **黑白名单 + 自动封禁 **
9. **多层安全加固 ** ( VMProtect、日志剥离、Pinned DNS、路由哈希)
当前版本 **1.0.39 ** ,客户端采用 C++17,服务端采用 Node.js 18,面向 Windows x64 平台,需管理员权限运行。