首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用代码生成防止欺骗

用代码生成防止欺骗
EN

Stack Overflow用户
提问于 2015-02-06 13:30:40
回答 2查看 1.1K关注 0票数 5

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

当客户端开始游戏,它将自动更新自己每天(使用一个启动器)。服务器也会自我更新。除非有真正的修补程序,否则更新只包含对游戏对象内存布局、网码和着色器的更改。这是使用自动生成和随机化(C++)类的自动化系统完成的。也许它还可以向层次结构中添加假对象,从而使身份识别对象更加困难。

通过这种方式,我希望能比破解者能够并将逆转工程师、更新和发布/更新一个新的欺骗更快地更新游戏。

这是可行的,还是黑客可以设法绕过这一机制?他们是每天都做这个工作,还是在某个时候自动完成?我能做些什么来改善这个系统?

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

有什么好办法吗?这对自动破解有效吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-06 13:40:54

客户端技术军备竞赛是一种完全错误的做法。你永远不会比一群有太多时间空闲的孩子更好或更快。你无法与一群没有成本(除了不做家庭作业)的攻击者竞争,而你的行为却耗费了你的时间和金钱。这是一场你将输掉的比赛,无论是在经济上还是在最后的结果。

人们有两种方式可以欺骗。

  1. 获取别人没有的信息(例如,透过墙壁查看)
  2. 其他人必须手动进行的自动游戏(“农业”)

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

  1. 别再把这些信息给客户了。放在服务器上。
  2. 停止游戏中不好玩的部分。人们只会自动完成无聊的部分,而不是为了无聊而玩游戏。让它变得有趣,没有人会把时间浪费在自动化上。如果您的游戏的自动化弹出,仔细思考如何您可以改进您的游戏,而不是与机器人的技术。

记住一句老话::“客户在敌人手中。”

票数 8
EN

Stack Overflow用户

发布于 2015-02-06 14:04:35

我不知道这样的制度能否成功地避免作弊,但我会担心产生和维持这样的制度。例如,你说

这是使用自动生成和随机化(C++)类的自动化系统完成的。也许它还可以向层次结构中添加假对象,从而使身份识别对象更加困难。

  • 你所说的随机化类是什么意思?这绝不是微不足道的。
  • 伪造的物体最终会被发现(死代码)

无论如何,我怀疑您是否能够对代码的关键部分执行某种有效的混淆,而不存在严重的缺点,如性能下降或计算完全错误(例如。浮法)。如果您有两种不同的机制来计算相同的值,那么对于同一组输入,最终会有不同的结果。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28366901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档