很多网络游戏都对坐标进行了一定的加密处理,首先如果没有对坐标时时验证的话可以防止瞬移等变态功能,再则对外挂开发者造成一定的分析困难。
本文以画江山为例

人物坐标可以是各种类型的数据首先我们尝试dword 类型 发现扫描两次以后没有结果了,说明不是该类型那么我们尝试float 以及double 结果发现也扫描不到那么这种情况基本上不是数据类型不对导致的,
而是数据存在加密的情况我们有三种方法可以作为突破口
第一 用字符串的方式扫描
因为他显示到了屏幕上,无论他是否是加密值,一定是有字符串的内容的如图扫描到

然后通过字符串的来源,以及调用关系寻找加密算法或则解密算法该方法突破口简单,追踪过程十分繁琐
第二种方法 坐标是人物的属性 到人物对象下去翻找属性 如图

扫描的起始地址是0x16F57F80人物对象我们给他偏移增加 0x2000 作为结束地址然后人物走动扫描变动的数值当然我们要从未知初始值 扫描
之前我们已经知道他是加密的这样看在人物属性下是否有 加密的坐标值 更容易锁定范围

扫描到2个坐标,但是和

游戏界面显示的坐标是有明显不同的,说明他们之间有转换算法经过游戏里来回走位分析知道是 坐标系 45度角旋转的一个新坐标系,当然我们也可以追踪坐标来源之间计算算法,简单一些的算法自行分析即可
第三种 直接未知初始值扫描
扫描的过程会较为漫长

扫描了很久 还剩余300多个我们可以尝试修改内存值,虽然不能达到瞬移的效果,但是往往真实坐标可能会达到一定的屏幕瞬间显示的效果其中有一个地址修改以后有这样的效果 OD追踪其来源

来源:《任鸟飞逆向》
*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)
来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |