任鸟飞游戏安全之<魔域>扫拍
本帖最后由 rnf147852 于 2017-9-8 13:35 编辑之前,我们讲了内存遍历商行数据进行扫拍。
但是天下武功,唯快不破,1-2ms的延时都会决定成败,所以更多的 高手,在写扫拍挂,抢怪挂和躲避技能挂等极度追求速度的 时,往往都是从收包函数入手的。
为什么呢?快!客户端是先收到封包,然后对封包解密,再将信息分配写入内存,最后通过写屏等函数显示到我们面前的。
由此可见,收包最快,内存次之,模拟最慢。
以扫拍为例
处理的思路很简单,开两条线程
一条线程不断的发送刷新拍卖行封包(不懂怎么发送封包?不懂怎么分析封包?以后会有专题讲解),注意频率,一般情况下服务器都会有验证,高频率发包会被踢下线。10ms刷新一次 ,还是30ms刷新一次 要自己测试服务器的设定,魔域应该是低于40ms,一会就会掉线。细心的同学应该会想到,那这个刷新延时40ms没有办法去掉吗?这是个不短的时间啊,只有一个办法,开多个账号同时扫拍,概率学告诉我们,如果10个账号同时扫拍,那么每个刷新封包的间隔就变成了4ms左右。
另外一条线程,HOOK收包函数,对收到的封包进行解密,判断到是我们需要的封包信息时发送购买封包。
hook recv 我们不需要HOOK函数本身,hook函数调用结束的位置即可,返回的eax是真实接收的包长,buffer里是接收到的封包。
封包解密,我们需要找到游戏的解密CALL,方法很简单,在加密封包上下访问断,游戏想解密加密封包,就一定会访问加密封包,在断下的位置一一分析即可,当然不排除多次的memmove,那样我们就要到新的内存上继续下访问断。
值得提的是,如果解密CALL没有被严重VM那么还是把功能偷出来自己解密更效率也更妥当。
判断封包就很简单了,通过包头字节可以判断出来封包的信息,封包里会有商行物品的所有信息,满足我们要求的物品,毫不犹豫,买!当然解密之后的封包也有可能不是一个包,可能存在粘包,我们还需要根据包头的buffersize 进行拆包等等简单的操作。
做了以上的所有操作,在网络足够优秀的前提下,扫拍,抢怪,躲避技能是多么简单的一件事,例如<魔域>扫拍,天涯明月刀抢怪,LOL躲避技能,都是一样的思路。有什么不懂可以关注微信公众号:任鸟飞逆向 进行技术交流。
...
...
...
这里只展示部分技术研究测试代码,以防止对游戏造成伤害。
有兴趣的同学可以自行研究。
不懂的地方可以留言 会一一解答。
代码被防火墙拦截了,所以存放在附件里
https://pan.baidu.com/s/1gfvg9qV
https://pan.baidu.com/s/1c1A57DQ
https://pan.baidu.com/s/1qYymcKc
这个当时利润一天几千 其实原理可以使用到很多游戏上 清晰度不够的话回复告诉我 XNF 扫拍也差不多 任鸟飞游戏安全之<魔域>扫拍 任鸟飞2017最新课程
页:
[1]