• 98阅读
  • 0回复

QQ仙侠传》《疾风之刃》秒分解 [复制链接]

上一主题 下一主题
离线任鸟飞
 

微信公众号任鸟飞逆向
不知道大家是否知道这样一种外挂
分解大量的商店装备,获得分解材料,然后拍卖行出售,赚取成本装备和材料的差价。
如果产量很高会对游戏平衡系统产生影响。
然后有玩家会去计算,10秒分解一件得多少金币,然后减去成本赚几金币,一天下来赚多少多少,可是无论怎么计算貌似一天也就几块钱好像连电费都不够哦......
外挂当然不只是人力手动的重复,他是有快速方法才导致的这种外挂存在
我所知道的存在过这种外挂的游戏最典型的就是《QQ仙侠传》和《疾风之刃》
那他是怎么实现快速分解的呢?
其实很简单
分解函数内层是有读条函数和更内层分解函数或则调用发包函数的
如果我们跳过读条函数又或则是直接调用更内层函数
就可以不用读条不用等待,瞬间分解全包装备了。
但是这都是建立在读条函数在本地客户端的
而不是在服务端的
如果读条函数在服务端,那么客户端向服务器发送分解请求,服务器进行读秒,然后返回分解结果给客户端,那么客户端就不能达到秒分解的效果了,这也是游戏设计导致的。
我们来看一下QQXXZ实例
通过send很容易能够返回到 分解的功能CALL
005F0BCF    DD05 F0AFAA00   fldqword ptr [AAAFF0]
005F0BD5    83C4 08         addesp, 8
005F0BD8    DD1C24          fstpqword ptr [esp]
005F0BDB    6A 05           push5
005F0BDD    56              pushesi
005F0BDE    894424 24       movdword ptr [esp+24], eax
005F0BE2    E8 890F1D00     call007C1B70
005F0BE7    E8 287E1000     call006F8A14
005F0BEC    DD05 F0AFAA00   fldqword ptr [AAAFF0]
005F0BF2    83C4 08         addesp, 8
005F0BF5    DD1C24          fstpqword ptr [esp]
005F0BF8    6A 06           push6
005F0BFA    56              pushesi
005F0BFB    894424 20       movdword ptr [esp+20], eax
005F0BFF    E8 6C0F1D00     call007C1B70
005F0C04    E8 0B7E1000     call006F8A14
005F0C09    8B4C24 20       movecx, dword ptr [esp+20]
005F0C0D    8B5424 24       movedx, dword ptr [esp+24]
005F0C11    50              pusheax
005F0C12    8B4424 2C       moveax, dword ptr [esp+2C]
005F0C16    51              pushecx
005F0C17    52              pushedx
005F0C18    50              pusheax
005F0C19    53              pushebx
005F0C1A    57              pushedi
005F0C1B    E8 F07E0D00     call006C8B10-------------------------------------------分解CALL
005F0C20    83C4 28         addesp, 28
005F0C23    33C0            xoreax, eax
005F0C25    5F              popedi
005F0C26    5E              popesi
005F0C27    5B              popebx
005F0C28    8BE5            movesp, ebp
005F0C2A    5D              popebp
005F0C2B    C3retn
005F0C2C    8D4C24 1C       leaecx, dword ptr [esp+1C]
005F0C30    51              pushecx
005F0C31    68 5492AC00     push00AC9254                         ; ASCII "#ferror in function'OnItemSplit'."
005F0C36    56              pushesi
005F0C37    E8 B4121D00     call007C1EF0
005F0C3C    83C4 0C         addesp, 0C
005F0C3F    5F              popedi
005F0C40    5E              popesi
005F0C41    33C0            xoreax, eax
005F0C43    5B              popebx
005F0C44    8BE5            movesp, ebp
005F0C46    5D              popebp
005F0C47    C3retn
如上面代码
这层CALL再返回的CALL分解就会读秒了
这层和更内层的都不读秒
那么说明本层就存在着读秒CALL  可以直接NOP掉
或则直接调用里层函数  或则直接发包实现 即可达到秒分解效果
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个