# 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://:<端口>/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 公网 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 平台,需管理员权限运行。