这种反作弊技术是否适用于使用私人服务器(公开未知的可执行文件)的多人游戏:
当客户启动游戏时,它将每天自动更新(使用启动器)。服务器也会自行更新。 除非有真正的补丁,否则更新仅包含游戏对象内存布局,网络代码和着色器中的更改。 这是使用自动生成和随机化(C ++)类的自动化系统完成的。 也许它还可以在层次结构中添加假对象,以使识别对象更难。
通过这种方式,我希望能够比破解者更快地更新游戏并进行逆向工程,更新和发布/更新新的作弊。
这会起作用还是黑客能以某种方式解决这个机制? 他们会每天做这项工作还是可以在某些时候自动完成? 我该怎么做才能改进这个系统?
似乎随机化内存布局在长期内没有帮助,因为通过跟随可执行文件中的函数调用并从该代码中提取指针偏移量,可以或多或少地轻松地提取布局。 因此,为了有效地防止这种情况,调用结构和代码本身也需要随机化。
有没有很好的方法呢?这对自动化破解是否有效?
答案 0 :(得分:8)
客户端技术军备竞赛是一种完全错误的做法。你会从不比一群有太多时间的孩子更好或更快。你不能与一大群没有成本的攻击者竞争(除了不做功课),而你的行为既花费你的时间又花钱。这是一场你将失去的比赛,无论是在经济上还是在最终结果中。
人们可以通过两种方式作弊:
有两种方法可以阻止人们这样做:
记住那句老话:"客户掌握在敌人手中。"
答案 1 :(得分:4)
我不知道这样的系统是否会成功避免作弊,但我会担心生产和维护这种系统。例如,你说
这是使用自动生成和自动生成的系统完成的 随机化(C ++)类。也许它还可以添加假对象 层次结构使识别对象更难。
无论如何,我怀疑你能够对你的代码的关键部分进行某种有效的混淆而没有严重的缺点,例如降级的性能或完全错误的计算(例如浮点运算)。如果您有两种不同的机制来计算相同的值,那么最终对于同一组输入会有不同的结果。