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