在国内做游戏,少不了做各种加密。如果客户端做战斗话,那就更少不了做内存加密了。
一般来说,作弊有三种途径:
- 初始态:修改配置表文件
- 中间态:修改内存数值(八门神器)
- 结果态:修改网络消息
今天我就第2条,谈一谈防作弊的思路及手段。以我对类八门神器的了解,其操作修改内存的基本操作流程如下:
操作方法:
- 在游戏界面上找到想要修改的数值(如金币1000),输入八门神器查找,会显示所有数值为1000的内存地址。
- 然后在游戏里让这个数值发生变化(如消费2,剩余998)
- 再次输入八门神器查找,则会在上次结果的基础上,显示所有数值变为998的内存地址。
- 循环1-3的操作,直至只剩下一个内存地址(也有可能是若干个,最好是一个)。
找到内存后,就可以为所欲为了。一般有两种修改,一种是直接修改为想要的值,一种是锁定内存,不让其变化。
如果是静态/全局变量,八门神器还可以直接保存内存偏移记录,以备下次使用。局部变量就只能临时有效了,下次再执行上面的操作修改。
根据这个流程,如果想让作弊者找不那么对应内存地址,那么让显示的数值与实际内存数值不一致,是不是就可以了呢?
解决方案1:隐藏明面数值
在存数值的时候,加上一个的偏移量,或者乘以一个倍数。读数值的时候减去对应的偏移量,或