【发布时间】:2015-04-06 15:53:23
【问题描述】:
这种反作弊技术是否适用于使用私人服务器(公开未知的可执行文件)的多人游戏:
当客户端启动游戏时,它会每天自动更新(使用启动器)。服务器也会自行更新。 除非有真正的补丁,否则更新仅包括游戏对象内存布局、网络代码和着色器的更改。 这是使用自动生成和随机化 (C++) 类的自动化系统完成的。 也许它还可以将假对象添加到层次结构中,以使识别对象更加困难。
通过这种方式,我希望以比破解者更快的速度更新游戏,并将逆向工程、更新和发布/更新新作弊。
这会奏效吗?或者黑客能以某种方式绕过这种机制吗? 他们会每天做这项工作,还是可以在某个时候将其自动化? 我可以做些什么来改进这个系统?
从长远来看,随机化内存布局似乎没有帮助,因为通过在可执行文件中执行函数调用并从该代码中提取指针偏移量,可以或多或少地轻松提取布局。 所以为了有效地防止这种情况,调用结构和代码本身也需要随机化。
有没有好的方法来做到这一点?这对自动破解有效吗?
【问题讨论】:
-
想想这对玩家来说有多糟糕,如果完全没有理由(没有补丁)你强制更新并延迟玩家体验你的游戏
-
@BeyelerStudios 如果延迟只有几秒钟,您永远不会注意到它;我玩过没有这种保护的游戏(据我所知),并且已经有很多延迟加载资产,为您的精确驱动程序集编译着色器,操作系统等。
-
任何更改都是潜在的问题来源(性能问题和错误)。每个补丁都需要一个完整的 QA 周期。你有资源每天验证整个游戏吗?
-
@ecreif:如果更新很小,那么破解者很快就会找出变化。如果它很大,那么连接速度较慢的人(比如我的)或每月下载限制的人(比如我的)会很快放弃尝试玩游戏。
-
@ecreif:您可能希望如此,但事实并非如此。可执行文件是结构化的,“纯机器代码”很容易转换为可读形式。使用反汇编程序和 diff 工具的几分钟将向您准确显示更改的内容。如果更改很小,则无需花费太多时间就可以弄清楚如何修改作弊以适应它们。如果它们很大,那么下载量也很大。
标签: c++ multiplayer anti-cheat cheat-engine