前言

对于单机游戏,或者客户端跑游戏逻辑且服务器不验证的网游,需要一些反作弊手段。
内存数据加密, 游戏数据合理性检测, 服务器重跑验证等都是有效的方案。
本文主介绍内存数据加密。

正文

内存修改器原理:

修改器修改的数值都是在内存中常驻的,也就是说,数值在内存中的地址是不变的。

我们通过一个例子来看修改器的基本流程。
比如游戏内金币为100, 修改器先搜100,会得到值为100的变量内存地址。
等金币变200后,再搜200。
一般重复3到4步操作,修改器就能定位到金币这个变量所在的内存地址。
接着就是修改。


在基本搜索之外,一些强大的修改器还提供了模糊搜索和反加密搜索。

模糊搜索
一些类似于血条等看不到具体数字的数值,模糊搜索提供了搜索“变大”、“变小”、“变化了”、“没变化”等操作,进行内存筛选。
模糊搜索的步骤比直接搜数值要多,一般要重复7到10步操作才能找到变量对应的内存地址。

反加密搜索
顾名思义,当数值经过加密后存放到内存中时,需要反加密才能找到内存地址。一般都是简单的异或加密或者倍值加密公式。

如何进行内存加密

内存加密一般分为可逆加密和不可逆加密

可逆加密

显示的数据 ~= 内存的数据。

将内存中常驻的数据加密起来,在显示的时候解密即可。
例如简单的异或加密或者y = nx + m。
有兴趣的可以搜索一些复杂的加密算法。

不可逆加密:

显示的数据 == 内存的数据。将存储变量加密,保存在验证变量中。

在每次使用变量之前,将变量加密与验证变量对比,这样就能发现是否内存被修改。
例如计算变量的md5值,并保存起来,下次取值时,先进行md5验证。

除了加密:

除了加密外,还有些很有用的小技巧

不断变化敏感数值的内存存储地址:将读写变量的方法封装成set和get两方法, 调用set方式时自动切换变量存储地址、变化加密密钥等。
取敏感数值时进行范围判断。比如商店商品价格不可能为负数,单局战斗奖励数量不可能突破天际。

运行内存数据加密加密教程jelly\_lzy发布了37 篇原创文章 · 获赞 22 · 访问量 26万+ 私信 关注

标签: 变量, 内存, 搜索, 运行, 加密, 数值, 修改器

相关文章推荐

添加新评论,含*的栏目为必填