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

2019-06-03 12:44:50 +08:00
 zycpp
最近 csgo 被外挂打自闭了,vac 就是个马后炮…
要完全杜绝外挂,是不是只能从操作系统层面入手,修改操作系统底层逻辑,比如内存保护,鼠标键盘 IO 保护,像主机那样,
外挂原理不太懂,只能想到这些
12609 次点击
所在节点    程序员
122 条回复
unknowncheater
2019-06-04 01:32:23 +08:00
等法律出來了再說,現在外快能賺點是一點。專搞國內沒有上架的遊戲,也不怕。FPS 遊戲的掛是封不完的,利潤大著呢
12101111
2019-06-04 01:53:59 +08:00
Xbox,游戏跑在 Hyper-V 虚拟机上,输入 API 只支持 Xinput 和极有限的键鼠.
nvkou
2019-06-04 02:03:31 +08:00
把外挂做成游戏模式啊。参考无限火力,OMG 模式,打僵尸等。没作弊动力了就不用技术折腾了。

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

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

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

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

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

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/570282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX