代码生成中的作弊预防

ecr*_*eif 5 c++ multiplayer anti-cheat cheat-engine

这种反作弊技术是否适用于使用私人服务器的多人游戏(公开未知的可执行文件):

当客户启动游戏时,它将每天自动更新(使用启动器).服务器也会自行更新.除非有真正的补丁,否则更新仅包含游戏对象内存布局,网络代码和着色器中的更改.这是使用自动生成和随机化(C++)类的自动化系统完成的.也许它还可以在层次结构中添加假对象,以使识别对象更难.

这样我希望比破解者更快地更新游戏,并且将反向工程,更新和发布/更新新的作弊.

这会起作用还是黑客能以某种方式解决这个机制?他们会每天做这项工作还是可以在某些时候自动完成?我该怎么做才能改进这个系统?

似乎随机化内存布局在长期内没有帮助,因为可以通过跟随可执行文件中的函数调用并从该代码中提取指针偏移来或多或少地轻松地提取布局.因此,为了有效地防止这种情况,调用结构和代码本身也需要随机化.

有没有很好的方法呢?这对自动化破解是否有效?

nvo*_*igt 8

客户端技术军备竞赛是一种完全错误的做法.你永远不会比一群有太多时间的孩子更好或更快.你不能与一大群没有成本的攻击者竞争(除了不做功课),而你的行为既花费你的时间又花钱.这是一场你将失去的比赛,无论是在经济上还是在最终结果中.

人们可以通过两种方式作弊:

  1. 获取其他人没有的信息(例如,查看墙壁)
  2. 自动化其他人必须手动完成的游戏("耕作")

有两种方法可以阻止人们这样做:

  1. 停止向客户提供该信息.将它保存在服务器上.
  2. 停止让游戏的某些部分变得不好玩.人们只会使无聊的部分自动化,他们不会玩游戏而感到无聊.让它变得有趣,没有人会浪费他的时间来尝试自动化.如果你的游戏自动化出现了,那就要认真思考如何改进你的游戏,而不是在技术上与机器人作战.

记住那句老话:"客户掌握在敌人手中."

  • 因为随着时间的推移,如果你不是手工做的话,"随机"会变得"显而易见".如果他攻击他的游戏并且没有得到任何进一步的更新怎么办?游戏是否仍然有效,或者您是否正在检查它是否已更新?你在检查什么?如果他假装那么你认为它已被更新怎么办?如果您正在玩游戏然后推出更新怎么办?一半的玩家被开除并且必须进行更新,或者是否有允许两组更改的特赦期? (3认同)
  • @ecreif我完全理解射手作弊的本质.但好的作弊会附加到你的显卡驱动程序并分析输出多边形,所以无论你在代码中做什么都没用.就个人而言,我演奏的最好的在线射击游戏受到了部族的严格监控.如果您的服务器可以安装,以便组可以拥有自己的策略,一切都很好. (2认同)