《LOL》即英雄联盟,一直存在着无限视距的 功能, 玩家可以把视距适当的调大一些,拥有更宽广的视角,无论是在团战还是在反gank都起到一定的作用,影响了游戏的平衡性。 视距的大小,我们可以想象一下,正常情况就是本地的数据,实现原理,修改内存数据。 由于鼠标滚轮可以在一定范围内修改视距,我们可以来回变化视距,用CE来扫描找到存放视距大小的内存地址。 最终扫描结果 该地址值从1000-2250变化,当我们写入1000的时候视距最小,写入2250时视距最大。 但是如果超过2250是无效的,这样没有达到随意调整视距的效果。 结论就是该地址是存放视距的地址,但是其最大值受到制约。那么我们就应该在这个地址的附近找其他属性看是否限制了最大值,或则在该地址上下访问断点,看代码中是否对该地址最大值做了限制。 果然在该地址附近发现了几个数据,分别修改查看效果,其中有一个40的数据,修改以后可以达到无限视距的效果。 如下: 甚至可以更远: 如果有什么不懂 可以关注微信公众号 任鸟飞逆向 交流学习 当然太远了没有意义了。。。 说到这里实际功能已经结束了 但是,直接修改了内存数据 会出现以下效果: 会被检测到 市场上的 是怎么过掉检测的呢,经过1天的研究找到了原因 首先我们说,如果40这个地址被检测的话,一定是要有检测代码的, 但是我们在该地址上下访问,并没有任何检测代码的访问,奇怪吗?那这种情况很显然,应该是这个地址里的值写入到了其他内存地址里,然后检测代码去检测被写入的地址。 那么找到了这个间接的地址,就很容易找到检测代码了, 直接ret检测CALL即可。 但是检测,反检测,反反检测的对抗是无休无止的,游戏可以再加CRC, 又过CRC,游戏有加其他检测方式... 检测的代码不贴出来了,防止对游戏造成不良影响 这样就可以实现过检测的无限视距功能
联系我时,请说是在 挂海论坛 上看到的,谢谢! |