游戏安全实验室 首页 游戏漏洞 查看内容

【游戏漏洞】《QQ仙侠传》之跳过VM分析角色对象

发布于:2018-11-21 10:21   |    125031次阅读 作者: 外部投稿    |   原作者: 通化程序员

很多古老的游戏在不断的更新中,会加入一些VM代码来干扰对其数据的分析,原本非常简单的数据,分析起来就变的很麻烦。以《QQ仙侠传》为例,我们来分析下角色对象。

首先通过CE对角色的血量进行扫描,经过多次尝试后发现,血量是以双浮点数存放的(如图)

 

分别修改数值可以得出第二个结果是角色的当前血量,用OD对其下访问断点,打开角色栏后游戏断下(如图)

这里可以得到+40偏移,执行到返回后,得到来源于00564471   处call    00ED817F的返回值(如图)

到函数内部发现代码被VM了(如图)

这样我们就无法对函数内部的代码进行分析,这里有两种办法可以跳过VM继续分析。第一种是直接调用VM所在的函数,这是最直接的一种方法,但是有可能会影响代码效率,因为VM要执行的代码数量很多,而且如果VM中如果加入一些检测代码的话直接调用也可能会封号或者掉线。

第二种方法则是通过CE对返回值进行扫描,并通过下访问断点跳到一个没有被VM的代码段中。我们用这种方法来继续分析。

通过CE扫描后得到一个结果,对这个结果下访问断点后游戏直接断下(如图)

断到的代码是在一个循环体内,而0053845C   处的call    0048DCC0中我们发现了一个二叉树遍历的结构(如图)

这说明角色对象是来源于二叉树遍历的,继续向上分析,可以得到+2C偏移,执行到返回后可以得到+4偏移(如图)

再次执行到返回后,又出现了VM代码(如图)

于是我们通过CE对要分析的ecx进行扫描,并得到了一个基地址(如图)(如图)

接下来我们只需要在二叉树遍历中找到节点ID为0x66的节点,便可以得到角色对象。

 

 


来源:通化程序员—投稿

GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。

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

分享到:
踩0 赞0

收藏

上一篇:【游戏分析】MMORPG游戏玩家对象分析

下一篇:【游戏漏洞】简单绕过某平台调试检测

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部