网站建设添加资料,北京网站制作建设公司,网站建设公司 倒闭,js网站通过发送封包#xff0c;我们可以让一些反复的枯燥的行为变的简单#xff0c;高效。
比如XXZ的萃取装备#xff0c;我们可以一瞬间萃取大量的装备#xff0c;而省去读条的过程。
我们来萃取一下看看效果 手动萃取是有读条的#xff0c;那么如果很多装备的话#xff0c;…通过发送封包我们可以让一些反复的枯燥的行为变的简单高效。
比如XXZ的萃取装备我们可以一瞬间萃取大量的装备而省去读条的过程。
我们来萃取一下看看效果 手动萃取是有读条的那么如果很多装备的话大量的读条过程会浪费很多的时间
如果说我们用封包来实现的话效率就会大大提高我们先来看看封装好的效果 只要一瞬间所有的装备全都变成了材料而且是没有经过读条的过程的。
下面我们来讲解一些实现的过程和原理。 一、封包协议与函数调用关系 我们知道代码的执行是逐层函数的调用关系 封包协议是这一系列调用的最后一环中间的每一层函数调用都进行了非常复杂的逻辑判断。
如果直接发送封包包协议就会绕过客户端所有的判断逻辑从而实现BUG功能。
而安全防护的办法就是尽量的将这些关键的逻辑判断放在服务器上运行。
从本质上说所有的变态功能bug漏洞都是可以通过封包协议来挖掘和防护的。
无论是篡改代码逻辑还是修改内存数据从本质上讲都是影响的封包协议。
这是我们找到的明文包由于没有用到线程发包所以找的过程就不赘述了。 二、分析分解包 我们来分析一下分解装备的这个封包下断后在读条结束时游戏断下了这说明这个读条是本地的而读条结束时才会发包 分别将几个参数的数值记录下来 这里的包头是2A0包长是0C包内容里面有一个000A应该是装备的位置而0001可能是分解的数量或者代表着背包
还剩一个ECX我们简单的分析一些来源如果用XDBG返回去分析会遇到VM代码 所以我们用CE去扫描一下发现可以直接得到一个基地址那我们直接用即可 接下我们只需要将CALL封装成代码结合背包遍历等数据就能够实现瞬间批量分解的功能了。 三、其他例子 再举两个例子看一下
比如说我们直接频繁的发送技能封包或者是攻击封包就能判断游戏是否存在无CD的BUG。
如果你发送封包还不能实现无CD的话那就说明这个CD是由服务器来判断的。
如果你在一面墙前面去发送走到墙后的封包就能判断是否有穿墙的bug。
如果福气没有判断这个障碍物而是本地来判断那么我们直接发个封包就穿墙走过了
顶多再结合一下修改本地坐标等方法来实现完整效果。
游戏中修改障碍物判断的逻辑还是修改寻路目的地坐标点的这个位置无非最终影响的都是封包协议。
那最后呢再给大家出一个题目如果一个游戏中怪物死亡的时候我们会发送怪物死亡的封包。
那么请说明这个游戏有没有秒杀功能呢