【游戏逆向】《某某仙侠传》《疾风之刃》秒分解

不知道大家是否知道这样一种外挂

分解大量的商店装备,获得分解材料,然后拍卖行出售,赚取成本装备和材料的差价。

如果产量很高会对游戏平衡系统产生影响。
在这里插入图片描述
然后有玩家会去计算,10秒分解一件得多少金币,然后减去成本赚几金币,一天下来赚多少多少,可是无论怎么计算貌似一天也就几块钱好像连电费都不够哦… …
外挂当然不只是人力手动的重复,他是有快速方法才导致的这种外挂存在

我所知道的存在过这种外挂的游戏最典型的就是《QQ仙侠传》和《疾风之刃》

那他是怎么实现快速分解的呢?

其实很简单

分解函数内层是有读条函数和更内层分解函数或则调用发包函数的

如果我们跳过读条函数又或则是直接调用更内层函数

就可以不用读条不用等待,瞬间分解全包装备了。

但是这都是建立在读条函数在本地客户端的

而不是在服务端的

如果读条函数在服务端,那么客户端向服务器发送分解请求,服务器进行读秒,然后返回分解结果给客户端,那么客户端就不能达到秒分解的效果了,这也是游戏设计导致的。

我们来看一下QQXXZ实例

通过send 很容易能够返回到 分解的功能CALL

005F0BCF DD05 F0AFAA00 fld qword ptr [AAAFF0]

005F0BD5 83C4 08 add esp, 8

005F0BD8 DD1C24 fstp qword ptr [esp]

005F0BDB 6A 05 push 5

005F0BDD 56 push esi

005F0BDE 894424 24 mov dword ptr [esp+24], eax

005F0BE2 E8 890F1D00 call 007C1B70

005F0BE7 E8 287E1000 call 006F8A14

005F0BEC DD05 F0AFAA00 fld qword ptr [AAAFF0]

005F0BF2 83C4 08 add esp, 8

005F0BF5 DD1C24 fstp qword ptr [esp]

005F0BF8 6A 06 push 6

005F0BFA 56 push esi

005F0BFB 894424 20 mov dword ptr [esp+20], eax

005F0BFF E8 6C0F1D00 call 007C1B70

005F0C04 E8 0B7E1000 call 006F8A14

005F0C09 8B4C24 20 mov ecx, dword ptr [esp+20]

005F0C0D 8B5424 24 mov edx, dword ptr [esp+24]

005F0C11 50 push eax

005F0C12 8B4424 2C mov eax, dword ptr [esp+2C]

005F0C16 51 push ecx

005F0C17 52 push edx

005F0C18 50 push eax

005F0C19 53 push ebx

005F0C1A 57 push edi

005F0C1B E8 F07E0D00 call 006C8B10-------------------------------------------分解CALL

005F0C20 83C4 28 add esp, 28

005F0C23 33C0 xor eax, eax

005F0C25 5F pop edi

005F0C26 5E pop esi

005F0C27 5B pop ebx

005F0C28 8BE5 mov esp, ebp

005F0C2A 5D pop ebp

005F0C2B C3 retn

005F0C2C 8D4C24 1C lea ecx, dword ptr [esp+1C]

005F0C30 51 push ecx

005F0C31 68 5492AC00 push 00AC9254 ; ASCII “#ferror in function ‘OnItemSplit’.”

005F0C36 56 push esi

005F0C37 E8 B4121D00 call 007C1EF0

005F0C3C 83C4 0C add esp, 0C

005F0C3F 5F pop edi

005F0C40 5E pop esi

005F0C41 33C0 xor eax, eax

005F0C43 5B pop ebx

005F0C44 8BE5 mov esp, ebp

005F0C46 5D pop ebp

005F0C47 C3 retn

如上面代码

这层CALL再返回的CALL 分解就会读秒了

这层和更内层的都不读秒

那么说明本层就存在着读秒CALL 可以直接NOP掉

或则直接调用里层函数 或则直接发包实现 即可达到秒分解效果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

douluo998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值