深色模式
反作弊(R0Guard)
本章你将学到:R0Guard 是什么、它怎样运行、依赖什么;它被拦截或运行异常时用户会看到什么;怎样确认"是被安全软件或网吧软件拦了"而不是别的原因;处理思路和绝对不能做的事;哪些问题客服不做判定、一律升级。
什么时候用得上:用户说客户端启动即消失、提示反作弊初始化失败、进游戏被踢、提示环境异常、准备不了但 Steam 正常、杀软报警、网吧机器上打不开,或者用户说"我被误封了"的时候。
R0Guard 是什么
R0Guard 是平台的反作弊组件。它的任务是检测和阻止外挂,保证对局公平。对客服来说,只需要知道它的几个运行特点,因为这些特点直接决定了它会和什么东西打架。
| 特点 | 说明 | 对排查的意义 |
|---|---|---|
| 随客户端启动初始化并持续运行 | 不是点开始游戏才启动,而是客户端一开就在 | 客户端"启动即消失"可能是它初始化时被拦 |
| 需要管理员权限 | 它要在系统较底层工作 | 没有管理员权限就初始化失败 |
| 核心组件加壳并有数字签名 | 加壳是为了防止被逆向;签名证明来源 | 加壳的程序容易被杀软当成可疑对象 |
| 有独立的 helper 进程,进程名可能是随机的 | 为了防止被外挂定向针对 | 用户在任务管理器看到一个陌生的随机名进程,不必惊慌 |
| 会加载驱动或底层模块 | 反作弊的常规做法 | 杀软和网吧管理软件对这类加载最敏感 |
大白话
R0Guard 是赛场里的裁判。裁判要有权限进任何区域(管理员权限),要能看到场上所有动作(底层模块)。保安(杀软、网吧管理软件)不认识这个裁判,就可能把他拦在门外或者直接请出去。裁判进不了场,比赛就不能开始。
待技术确认
R0Guard 的 helper 进程如何识别(进程所在目录、签名信息、任务管理器中的描述字段),以便向用户解释"这个陌生进程是我们的",以技术同事说明为准。在确认之前,不要向用户断言某个陌生进程一定是或一定不是 R0Guard。
它依赖什么、谁依赖它
上游:R0Guard 依赖的东西
| 依赖 | 缺了会怎样 | 谁能处理 |
|---|---|---|
| 管理员权限 | 初始化失败 | 用户(以管理员身份运行客户端,UAC 选"是") |
| 系统安全设置允许其加载 | 驱动或模块加载失败 | 客服不得让用户改动,见下文 |
| 未被杀软拦截、隔离、结束 | 初始化失败;客户端启动即消失;进游戏被踢 | 用户(加白名单、恢复隔离文件) |
| 未被网吧管理软件结束或禁止 | 同上 | 网吧网管 |
| 系统本身正常(未被外挂残留破坏) | 误报、环境异常 | 用户(清理);判定需技术 |
| 客户端正常 | 客户端起不来,它也不会运行 | 见 客户端 |
下游:依赖 R0Guard 的东西
- 准备与开始对局:R0Guard 不正常,可能无法准备或无法开始。
- 对局全程:对局中 R0Guard 被结束或检测到异常,用户会被踢出。
- 账号状态:R0Guard 的判定结果影响账号是否被封禁——这部分完全在服务端,客服不接触。
它坏了会有什么表现
| 表现 | 可能的原因(按可能性排序) | 首选证据 |
|---|---|---|
| 客户端提示反作弊初始化失败 | 无管理员权限;杀软拦截驱动或 DLL;网吧禁止未知程序;系统安全设置阻止 | 提示截图;是否以管理员运行;杀软拦截记录;是否网吧 |
| 客户端启动即消失、无报错 | 杀软或网吧软件直接结束进程(三类成因之一) | 事件查看器无 Application Error;杀软或网吧软件记录。见 客户端 |
| 准备不了,且 Steam 正常 | R0Guard 未运行或异常 | 客户端提示;任务管理器中 R0Guard 相关进程是否存在(识别方式待确认) |
| 进游戏几秒或几分钟后被踢 | 对局中 R0Guard 被结束;检测到冲突软件;网络问题 | 被踢时的提示截图;用户电脑上运行的其他软件清单 |
| 提示环境异常 | 检测到冲突软件、虚拟机、调试工具、外挂残留 | 提示截图;用户软件清单 |
| 杀软弹窗报威胁,对象在客户端目录 | 杀软对加壳组件的误判 | 杀软弹窗截图 |
| 游戏启动极慢或卡在启动 | R0Guard 初始化被杀软反复扫描 | 任务管理器中杀软占用;关闭杀软实时防护后对比 |
待技术确认
上表中"初始化失败""环境异常""被踢"等情况下客户端和游戏内的具体提示文案、错误编号(如果有),以技术同事说明或知识库为准。客服判断时以"提示中是否提到反作弊或环境"为线索,具体文案对照知识库。
与安全软件的冲突
这是 R0Guard 问题的第一大来源。杀软和网吧管理软件对反作弊组件的处理方式有三种,每一种都有不同的表现:
| 安全软件的动作 | 用户看到什么 | 在哪能确认 |
|---|---|---|
| 拦截驱动或 DLL 加载 | 初始化失败提示;客户端能开但准备不了 | 杀软的"拦截记录""防护日志" |
| 隔离或删除文件 | 初始化失败;客户端起不来;校验失败 | 杀软的"隔离区""病毒查杀记录" |
| 直接结束进程 | 客户端启动即消失;对局中被踢 | 杀软的"进程防护"日志;网吧管理软件的策略 |
网吧管理软件的情况更复杂:它通常有进程保护、禁止未知程序运行、还原三种机制,并且用户没有权限改。网吧机器的特点见 网吧机器的特点,排查见 网吧环境。
怎么确认"是被拦截"而不是别的原因
被拦截和程序自身崩溃,在用户眼里都是"打不开"或"消失了"。区分靠两条证据:
第一条:事件查看器
- 怎么做:打开事件查看器,看"Windows 日志 → 应用程序"里客户端消失的时间点附近有没有错误记录。步骤见 资源监视器与事件查看器。
- 预期看到:可能有 Application Error,也可能没有。
- 结果说明:
- 没有 Application Error → 程序不是自己崩的,被结束的可能性大,进入第二条。
- 有 Application Error,且错误模块是 R0Guard 相关文件 → 是原生模块层面的问题,收集日志和崩溃转储升级。
- 有 Application Error,错误模块是别的东西 → 见 客户端 里的三类成因。
第二条:杀软或网吧软件的记录
- 怎么做:打开用户电脑上的每一个安全软件(可能不止一个),看隔离区、拦截记录、防护日志,找客户端安装目录下的文件或客户端进程。入口见 安全软件与拦截。网吧用户直接询问网管。
- 预期看到:有或没有相关记录。
- 结果说明:
- 有记录 → 确认被拦截。按下文"处理思路"操作。
- 没有记录,事件查看器也没有 → 有些安全软件静默处理不留记录。可以让用户临时关闭杀软实时防护后重试一次,作为验证。
注意
让用户临时关闭杀软是验证动作,不是解决方案。验证完必须让用户开回来,然后用加白名单的方式解决。"关掉杀软就好了"不能作为最终结论交给用户。见 排查总原则 的"一次只改一个变量"和"改了没用要改回去"。
处理思路
| 场景 | 处理 |
|---|---|
| 家用电脑,杀软拦截 | 让用户把客户端安装目录和 R0Guard 相关目录加入杀软白名单(信任区、排除项),恢复被隔离的文件,重启客户端 |
| 家用电脑,多个杀软 | 每一个都要加白名单;多个杀软同时运行本身就是冲突源,建议只保留一个 |
| 网吧机器 | 客服不能让用户操作。说明情况,请用户联系网管把客户端加入网吧管理软件的允许名单并关闭对其的进程保护;必要时提供技术同事的联系方式给网管 |
| 加白名单后仍被拦 | 白名单范围不够(漏了某个目录或进程);或杀软对驱动加载的拦截不受白名单控制。收集杀软名称、版本、拦截记录升级 |
待技术确认
需要加白名单的完整清单(客户端安装目录、R0Guard 目录、helper 进程、游戏文件目录,以及是否有驱动文件需要单独放行),以及对主流杀软和网吧管理软件的已知兼容情况,以技术同事说明或知识库为准。
展开:怎么向用户解释"杀软报警"和"陌生进程"
用户看到杀软弹窗或任务管理器里的随机名进程,第一反应是"你们的软件有毒"。这时候不要辩解"我们没有毒",也不要说"杀软误报"这种用户无法验证的结论。可以这样组织说法:
- 先承认现象:"您看到的报警是真实的,杀软确实拦了我们的一个组件。"
- 再解释原因,用大白话:"反作弊需要在系统比较底层工作,而且为了防止外挂针对它做了保护处理,这两点都会让杀软觉得可疑。"
- 再给动作:"请把客户端的安装目录加入杀软的信任区,然后恢复被隔离的文件,我们再试一次。"
- 对陌生进程:在技术确认识别方法之前,只说"反作弊会有一个辅助进程,名字可能看起来比较随机,具体识别方法我确认后告诉您",不要断言。
如果用户坚持不信任、拒绝加白名单,尊重他的选择,记录下来,告知在当前设置下平台无法正常运行。不要施压。
与其他软件的冲突
除了安全软件,反作弊还会和下面这些类型的软件冲突。冲突的表现是初始化失败、进游戏被踢、提示环境异常。
| 软件类型 | 例子(说明性) | 为什么冲突 |
|---|---|---|
| 宏与按键工具 | 鼠标宏、连点器 | 模拟输入是外挂常用手段 |
| 变声器与音频注入 | 游戏内变声 | 向游戏进程注入模块 |
| 注入类软件 | 覆盖层、性能监控、皮肤修改 | 同样注入游戏进程 |
| 调试与逆向工具 | 调试器、内存查看器 | 反作弊的直接对手 |
| 虚拟机 | 在虚拟机里运行游戏 | 反作弊通常禁止 |
| 远程控制 | 远程桌面类工具 | 可能被视为代打环境 |
处理原则:让用户逐个关闭这些软件后重试,一次关一个,确认是哪一个。不要一次全关。
系统安全设置:客服不得让用户改
反作弊组件的加载和 Windows 的一些安全设置有关,比如安全启动、内核隔离、测试模式等。某些情况下这些设置会影响 R0Guard 的运行。
禁止
客服不得让用户关闭或修改任何系统安全设置,包括但不限于:关闭安全启动、关闭内核隔离或内存完整性、开启测试模式、关闭 Windows Defender 的核心防护、修改 BIOS 设置。这些操作会降低用户电脑的整体安全性,属于不可逆或高风险操作,超出客服权限。遇到疑似与系统安全设置相关的问题,收集用户的系统版本和相关设置状态后升级,由技术判断和给出正式指引。
你可以做的是收集信息:
- 怎么做:让用户在 Windows 设置里查看"Windows 安全中心 → 设备安全性"页面并截图,这里能看到安全启动和内核隔离的状态。
- 预期看到:各项的开或关状态。
- 结果说明:无论开或关,都不要让用户改。把截图附在升级工单里。
待技术确认
R0Guard 对安全启动、内核隔离、测试模式等设置的具体要求或兼容性,以及官方给用户的正式指引,以技术同事说明为准。
外挂残留导致误报
一个概念性的情况:用户以前装过外挂(或者机器是二手的、网吧公用的),外挂的驱动、服务、文件没有清理干净。反作弊检测到这些残留,就会报环境异常或做出判定。用户自己可能完全不知道机器上有这些东西。
对客服的意义:
- 用户说"我没开挂为什么被判定",客服不做真伪判断,一律升级。
- 可以收集的信息:机器来源(新买、二手、网吧)、是否有多人使用、最近装过什么软件。
- 不要向用户暗示"你一定开挂了"或"你一定是被误判"。
封禁与申诉:一律升级
注意
所有涉及封禁、误判、申诉的问题,客服不做判定。你的任务是:收集 UID、发生时间、用户看到的提示截图、用户的陈述,按 何时升级 升级。不要承诺解封,不要解释判定依据,不要透露反作弊的检测逻辑。
封禁状态存在服务端,客户端只是显示。重装、换电脑、换 Steam 账号都不会改变账号的封禁状态。
崩溃转储
客户端有崩溃转储机制。当客户端或其原生模块(包括 R0Guard 相关组件)崩溃时,会生成转储文件供技术分析。涉及 R0Guard 的崩溃,转储是技术唯一能看到细节的材料——收集它并附在工单里,比任何文字描述都有价值。
待技术确认
崩溃转储的存放位置、文件命名、体积是否过大需要压缩,以技术同事说明或知识库为准。
常见误区
- "杀软报毒说明我们的程序有病毒。" 加壳、有驱动、有随机名进程,这三样都是杀软的敏感点。误判非常常见。但你要说的不是"杀软误报"这个结论,而是"请把目录加入白名单后再试"这个动作。
- "关掉杀软就好了,让用户关着吧。" 关掉是验证,不是解决。必须开回来并加白名单。
- "任务管理器里有个陌生进程,肯定是病毒。" R0Guard 的 helper 进程名可能是随机的。不要下结论,按待确认的识别方法核对。
- "用户说没开挂,那就是误判。" 客服不判定,一律升级。
- "让用户关了内核隔离试试。" 绝对禁止。
- "网吧打不开,让用户自己去杀软里加白名单。" 网吧用户没有权限,必须联系网管。
对排查意味着什么
- R0Guard 相关的排查入口是 无法启动(初始化失败、启动即消失)、崩溃与卡死(对局中被踢或消失)、网吧环境(网吧机器)。
- 证据链固定:是否以管理员运行 → 事件查看器有无自身崩溃记录 → 杀软或网吧软件的拦截或隔离记录 → 用户电脑上的冲突软件清单 → 崩溃转储与客户端日志。
- 三条红线:不让用户改系统安全设置;不判定封禁与误判;不把"关杀软"当解决方案。
- 网吧机器的 R0Guard 问题,处理对象是网管,不是用户。
自检问题
- R0Guard 的五个运行特点是什么?每一个特点为什么会让它容易和安全软件打架?
- 安全软件处理 R0Guard 的三种方式分别是什么?用户分别会看到什么?
- 怎样用事件查看器和杀软记录区分"被拦截"和"程序自身崩溃"?
- 为什么"临时关闭杀软"只能是验证动作?验证之后要做什么?
- 列出客服绝对不能让用户做的系统安全设置改动。遇到这类问题应该怎么办?
- 用户说"我没开挂却被封了",你的处理步骤是什么?哪些话不能说?