V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zycpp
V2EX  ›  程序员

有效的防治游戏外挂,是不是要从操作系统层面入手?

  •  
  •   zycpp · 2019-06-03 12:44:50 +08:00 via iPhone · 12524 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近 csgo 被外挂打自闭了,vac 就是个马后炮…
    要完全杜绝外挂,是不是只能从操作系统层面入手,修改操作系统底层逻辑,比如内存保护,鼠标键盘 IO 保护,像主机那样,
    外挂原理不太懂,只能想到这些
    第 1 条附言  ·  2019-06-03 13:17:33 +08:00
    大家都是搞技术的,咱不谈法律怎么怎么的,就谈技术层面上的事,好不好
    第 2 条附言  ·  2019-06-03 17:16:16 +08:00
    云游戏防是能防,但是 fps 这类游戏的用户体验就会很差了
    122 条回复    2019-06-04 14:51:56 +08:00
    1  2  
    unknowncheater
        101
    unknowncheater  
       2019-06-04 01:32:23 +08:00
    等法律出來了再說,現在外快能賺點是一點。專搞國內沒有上架的遊戲,也不怕。FPS 遊戲的掛是封不完的,利潤大著呢
    12101111
        102
    12101111  
       2019-06-04 01:53:59 +08:00
    Xbox,游戏跑在 Hyper-V 虚拟机上,输入 API 只支持 Xinput 和极有限的键鼠.
    nvkou
        103
    nvkou  
       2019-06-04 02:03:31 +08:00 via Android   ❤️ 1
    把外挂做成游戏模式啊。参考无限火力,OMG 模式,打僵尸等。没作弊动力了就不用技术折腾了。

    或者事后诸葛亮,把检测出来的账号单独扔到作弊服。让他们神仙打架就是。练号也要成本的,变相提高账号价值
    abcdabcd987
        104
    abcdabcd987  
       2019-06-04 02:19:48 +08:00
    我记得 SysTEX Workshop 2016 年有一篇

    A Case for Protecting Computer Games With SGX
    Erick Bauman and Zhiqiang Lin (UT Dallas)
    https://dl.acm.org/citation.cfm?doid=3007788.3007792

    但是 Intel SGX 嘛,发发论文还可以,估计没有厂商敢拿来真的做产品
    2643595423
        105
    2643595423  
       2019-06-04 02:21:43 +08:00 via Android
    技术上 不可能完全没有外挂 只能无限加重开发难度 削弱开外挂利益
    illusionwing
        106
    illusionwing  
       2019-06-04 02:24:41 +08:00
    你看看以前的 NProtect ……
    sneezry
        107
    sneezry  
       2019-06-04 02:25:52 +08:00
    学暴雪,我不需要证据,我单方面认为你作弊了就封号,别解释,不听。所以暴雪游戏(国服除外)基本没有作弊的。
    2643595423
        108
    2643595423  
       2019-06-04 02:29:01 +08:00 via Android
    去年腾讯测试了一个叫 tp 安全屋的东西
    zbttl
        109
    zbttl  
       2019-06-04 02:31:26 +08:00
    这我早吐槽过了。。。windows 在外挂上要负很大责任,基本没什么作为,需要各个游戏厂商通过各种手段(甚至于 hook ),这些手段应该是微软来做的。。。
    起码能过掉大部分太过分的挂,什么透视隐身之类的,最起码让开挂成本提升一个等级吧,现在 fps 网游根本就只有大厂感搞,因为小厂的东西,没有反外挂支持根本没法活。
    至于楼上讲的什么宏阿什么外挂鼠标啊,这些有但是对游戏体验的破坏是有限的,先把能堵的堵上再说吧,现在微软深化 one xbox 战略,我感觉很快就有动作了。
    applehater
        110
    applehater  
       2019-06-04 02:59:25 +08:00
    天天鼓吹 5G 低延迟大带宽,那么每一发 xx 的弹道发射和碰撞都交给服务器把。
    Valyrian
        111
    Valyrian  
       2019-06-04 03:27:41 +08:00
    @applehater 除了 pubg 这种垃圾,正常网游都是服务器的
    LongLights
        112
    LongLights  
       2019-06-04 06:53:13 +08:00 via Android
    打 faceit 就完事了
    sunocean
        113
    sunocean  
       2019-06-04 07:50:26 +08:00
    @keymao 黑镜第三季第一集 急转直下了解一下。
    mf2019d
        114
    mf2019d  
       2019-06-04 08:06:22 +08:00 via iPhone
    解决问题的方向略有问题。

    举个例子,鉴别 porn,现在算法已经很 nb 了。 但还是需要鉴黄师的存在。

    外挂的问题,也可以用这这个思路,算法加人工。

    人工的费用,比部署设备+专家的费用低多了。

    it ” s business
    yksoft1test
        115
    yksoft1test  
       2019-06-04 08:11:47 +08:00
    @applehater 坦克世界早就这么做了。。
    wr410
        116
    wr410  
       2019-06-04 08:35:59 +08:00   ❤️ 1
    反外挂在两个层面,一个是客户端,一个是服务端 -> 废话

    1、第一类外挂,就是发送假封包,例如修改数据什么的,这类解决办法是在服务端去做物理验证和逻辑验证。物理验证就是加解密签名啥的,逻辑验证就是 A 坐标不可能一下飞到 B 坐标去。前者会加大双向 CPU 负担延时增加,后者嘛要考虑延时及服务端的压力。

    2、第二类外挂,就是客户端作弊,加载假的 dll,在界面上显示不该显示的东西,例如把墙后面的人显示出来,画圈圈,自瞄什么的。这类外挂就没什么好办法了,流行的做法就是在启动之前加载保护程序,后台检测进程什么的。但是毕竟都是运行在别人电脑上,人家想怎么整就怎么整,没什么好办法。
    goodleixiao
        117
    goodleixiao  
       2019-06-04 09:35:08 +08:00
    从技术的角度来说,防外挂有些挑战,软件程序如果无法在硬件上做限制基本上是软肋,但是现实是,硬件不是你家的,除非你是大厂,开发专用的游戏机。
    那就从软件来说怎么防外挂吧! 定律:任何程序能够在对方手里运行都是可以破解的。 但成本和收益是否成正比是个问题!就好比现有的公开加密算法所产生的加密数据都是可以暴力破解的,但是需要 100 年或者更长时间,那么破解这份加密数据的时间成本和破解这条消息是否还有意义。 所以所谓的防外挂就是增加对方的破解成本,增加破解成本无非两种或者两者组合,一种增加对方的破解时间成本,二种增加对方破解后的收益成本。

    一、增加对方的破解时间成本
    比如:加花指令、混淆代码、加壳、加固、虚拟机、脚本、动态更新、频繁更新、加密签名、操作系统防护等等。
    二、增加对方破解后的收益成本
    在用户破解后,使用一些服务器手段,即时发现使用外挂的用户(比如:行为检测、账号异常、打怪升级陷阱、验证码等等),后面做的事情就有许多种,封号、踢号、惩罚、虚拟服务等等。
    29EtwXn6t5wgM3fD
        118
    29EtwXn6t5wgM3fD  
       2019-06-04 09:41:32 +08:00
    现在都是驱动读写内存,驱动还有签名。比如 Pubg 外挂如果驱动纯粹读内存且不在显示器上绘制,只将坐标输出到网页上。个别人使用保证驱动不泄露,是不可能被检测到的。唯一的反制措施就是定期修改内存地址和加密方式。
    pkoukk
        119
    pkoukk  
       2019-06-04 09:59:47 +08:00
    @zbttl 想知道一下,windows 可以在这方面做什么努力?游戏白名单制度么?白名单内的程序禁止 hook 内存?
    Cloutain
        120
    Cloutain  
       2019-06-04 10:15:01 +08:00
    有人居然怪起微软来了,我也是想笑。
    微软已经在 x64 上加入了 PatchGuard 和 HyperGuard 用于防止内核关键部分的篡改,还想怎样?微软可没有反外挂的业务,当然也没这义务。游戏保护和过保护都会涉及到内核过招,是好是坏就见仁见智了。实时性高的游戏没法让所有数据都在服务端处理,这是根本。未来计算机性能和网络性能的提升是不是就能解决这个问题了。
    目前而言不管你怎么在关键地方混淆甚至 VM,大手子都能找出来。之前看雪上有人提过让游戏封装运行在虚拟机中用于隔绝游戏运行环境,且不说性能问题,看起来隔离,但是虚拟机仍然会执行游戏代码,易语言大手子总能找出来。ε=ε=ε=┏(゜ロ゜;)┛
    linZ
        121
    linZ  
       2019-06-04 10:28:00 +08:00
    技术上的反外挂,成本太高的都没有意义。其实最好做成(国内哈)需要身份证绑定,手机号验证,定期展示被举报玩家信息,包括手机号和个人信息,来供大家打爆某些人的电话。
    xuextx
        122
    xuextx  
       2019-06-04 14:51:56 +08:00
    个人意见:
    一是平台负责,既然把游戏接入到你这,你作为平台限制必须安装你才能玩我,那么你就应该想办法检测外挂
    二是帐号实名制,确定开外挂了的话,就封掉,没实名或被盗的号不能玩。

    像 steam 这种反应能力是真的垃圾,之前 steam 被盗,申诉等了快个把星期才找回来,期间被孤儿拿去开挂封号几天。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5290 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:56 · PVG 15:56 · LAX 23:56 · JFK 02:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.