我正在创建一个游戏而且我真的很担心黑客攻击,所以我在游戏中写了一个反作弊行为,我搜索了现在的黑客攻击方式,我找到了一些模式,首先总之,几乎每个hack都使用一个线程(通常使用CreateThread())来创建检查循环(检查hack是否打开/关闭),你们中的任何一个都有一个很好的方法来检查线程是否不是来自游戏吗? PS:我也使用代码外部的线程(在DLL内部)
答案 0 :(得分:6)
找到一种不同的“反热”方式几乎肯定会更好,因为正如cdhowie所指出的那样,没有什么可以防止有人聪明地用你想要的东西砸到你的反热代码。
有些技术效果更好:
让服务器完成所有“重要”的事情,比如找出你得到的分数以及你剩下多少生命,以及如果玩家变成一个动物模型(在他死后试图移动),就会出现问题。
我认为合理运作的另一种方法是基本记录玩家如何到达目标的“日志” - 他们使用了多少生命,杀死了多少敌人,敌人的类型,每个敌人的得分,使用的武器,射击,完成所有这些所需的时间,然后让服务器验证它是“合理的” - 所以如果有人提高他们拥有的生命数量,或者改变武器造成100倍的伤害,或者减速击倒敌人或加快玩家的时间,它会显示在“日志”中,然后日志可以被丢弃为“假”。