加密游戏数据与反内存编辑器

16 11月

内存编辑器如字面意义是可以修改内存的工具。可以很简单的使用于游戏破解。

比如游戏中有金币这个概念,那么用户是可以看到金币数的,那么在内存编辑器中搜索这个数值,然后在游戏中做出一些操作使金币数量发生变化,然后再搜索新的值,直到搜索出来的结果数量只有一个或者几个,然后使用内存编辑器修改这个数值,回到游戏中金币数就会变成修改过后的值。

有不少意见认为对于单机游戏,这个并不重要,如果是在线游戏,那么也不会有这个问题。但是弱联网+内购之前,保护数据还是必要的一个步骤。

解决这个问题最简单的方案就是多个数据映射一个数据,即用户界面显示的是金币5,但是你内存中包含两个或者更多的数值,比如还有一个数值为5,另外一个数值为12(5*2+2)。当每次对数值进行操作的时候,都会检查这两个值是否匹配,如果不匹配就从第二数值中恢复一个数值覆盖掉第一个数值。两个数值之间遵循一定函数关系,而是双向的。

如果不需要恢复功能,还可以选用单向函数,直接加密,比如数值5对应bbce2345d7772b06,那么每次操作前做检查,如果不符合直接报错即可。

还有一个复杂一点的方案是将数值逻辑和其他逻辑拆分出来,数值逻辑部分包含所有的加密,持久化等等,而修改数值必须遵循一定的验证逻辑,类似于登录后修改。这样数值逻辑部分就可以不断重用。

发表评论

电子邮件地址不会被公开。