游戏安全实验室 首页 外挂分析 查看内容

【外挂分析】《QQ西游》外挂背包分析

发布于:2017-11-16 16:20   |    133923次阅读 作者: 管理员    |   原作者: 外部投稿

今天我们来分析一下QQ西游的背包遍历。

背包物品的突破口很多,最常见物品数量,物品位置,物品名字,背包格子内的对象等等都可以作为突破口,如果这些都无法有效的找到物品的对象,那么可以尝试通过背包占用格子数量,分析使用物品函数参数等查找。

对于这款游戏来说,物品的数量是可以作为突破口的,但是需要注意的是物品的数量偏移并不是一个可以被4整除的地址,所以我们CE扫描的时候要把快速扫描点掉,并且要用WORD或者BYTE来扫描。如果通过物品位置扫描的话需要注意的是物品的位置并不是从0或者1开始的,而是从1E开始的,因为之前还有装备栏和附加包裹栏等。如果通过格子内的对象来分析的话,也是可以很快找到的,但是对象找到了,对象内的信息也不容易观察。

我们从物品数量入手,搜索byte型,最终得到1个结果(如图)

 

OD数据窗口中跟随这个地址,并下硬件访问断点,再次访问物品游戏断下(如图)

游戏断下后我们得到一个+A的偏移,继续向上追eax的来源,得到一个数组

mov     eax, dword ptr [esi+eax*4+A848],分析上面的跳转我们发现eax小于0或者大于FA都无法经过数组,也就说数组序号的范围是0到FA,继续追esi的来源,可以得到一个基地址mov     esi, dword ptr [8E0D18]

在数据窗口中观察数组的情况,我们发现eax=0时的指针并不指向物品栏第一格的物品,而是指向的装备栏,而eax=1E的时候才指向第一格。(如图)

观察背包物品的对象,我们物品得到物品的名字,所以,我们需要找到物品名字库,并和物品对象进行关联。经过CE的扫描,我们得到一个可以改变本地物品名字的地址(如图)

OD中下硬件访问,最终得到物品名字库代码(如图)如图)

 

整理后得到的公式如下

[[8E0D18]+0a848+n*4]+8 物品ID   WORD型

[[8E0D18]+0a848+n*4]+0A 物品数量  byre型

[[[FBDCBC]+物品ID*4]+4] 物品名字ASCII型

 

数据并不难,关键是能否在寻找突破口时考虑全面,把数据类型和可能关联的数据想清楚就能很容易的得到结果。


来源:外部投稿

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩0 赞0

收藏

上一篇:【外挂分析】《QQ仙侠传》《疾风之刃》秒分解

下一篇:【外挂分析】《勇者大冒险》《DNF》吸物

最新评论
top 问题反馈

返回顶部