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