前言
对于单机游戏,或者客户端跑游戏逻辑且服务器不验证的网游,需要一些反作弊手段。
内存数据加密, 游戏数据合理性检测, 服务器重跑验证等都是有效的方案。
本文主介绍内存数据加密。
正文
内存修改器原理:
修改器修改的数值都是在内存中常驻的,也就是说,数值在内存中的地址是不变的。
我们通过一个例子来看修改器的基本流程。
比如游戏内金币为100, 修改器先搜100,会得到值为100的变量内存地址。
等金币变200后,再搜200。
一般重复3到4步操作,修改器就能定位到金币这个变量所在的内存地址。
接着就是修改。
在基本搜索之外,一些强大的修改器还提供了模糊搜索和反加密搜索。
模糊搜索:
一些类似于血条等看不到具体数字的数值,模糊搜索提供了搜索“变大”、“变小”、“变化了”、“没变化”等操作,进行内存筛选。
模糊搜索的步骤比直接搜数值要多,一般要重复7到10步操作才能找到变量对应的内存地址。
反加密搜索:
顾名思义,当数值经过加密后存放到内存中时,需要反加密才能找到内存地址。一般都是简单的异或加密或者倍值加密公式。
如何进行内存加密
内存加密一般分为可逆加密和不可逆加密
可逆加密:
显示的数据 ~= 内存的数据。
将内存中常驻的数据加密起来,在显示的时候解密即可。
例如简单的异或加密或者y = nx + m。
有兴趣的可以搜索一些复杂的加密算法。