致力于分享游戏安全技术,提供专业的游戏安全资讯
角色信息往往数据分析的开始,也是关键,在这样一个看似最简单的数据里,往往能反映出这个游戏的很多数据特点和结构。
《星辰传说》的角色信息公式很简单,但是对于初学者来说往往会误入歧途,浪费很多的时间。
首先通过改变角色的血量,搜索到两个地址(如图)
让怪物攻击使角色的血量减少,可以得出第一个地址是当前血量,第二个是最大血量,通过OD对当前血量下访问断点,游戏断下(如图)
向上分析可以得到20偏移,然后到call 004C0F80中继续分析,可以得到+C和+4偏移,然而我们继续分析时发现继续分析的esi来源于一个堆栈地址,也就是说这个esi里的值是被临时写入的,那么我们就没有办法继续向上分析。
这种情况下我们首先考虑的是0x61A564处写入的ecx是否是真正的血量来源,于是我们简单的分析下,发现也无法得到一个合理的公式。这样我们就需要考虑第三种情况,会不会有其他的代码访问这个血量。我们再次下访问断点,并F9运行,游戏断下(如图)
这里我们得到了一个45C偏移,这个偏移看起来很不错,返回上一层继续分析,需要注意的是不要用ctrl+F9去返回,不然会返回两次,因为当前代码已经在retn处。F8单步返回后,得到+64偏移(如图)
继续向上分析,很容易得到基地址[90560C](如图)
这样我们就得到角色血量的公式
[[90560C]+64]+45c
在周围进行分析,还可以得到一些其他的属性
[[90560C]+64]+460 当前蓝
[[90560C]+64]+61C 最大血
[[90560C]+64]+620 最大蓝
[[90560C]+64]+274 X坐标
[[90560C]+64]+278 Y坐标
[[90560C]+64]+24 角色名字ASCII
来源:通化程序员-公众号投稿
*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)
近期精品文章:
【游戏漏洞】CSGO人物结构分析
【游戏漏洞】《幻想神域》线程发包分析
【外挂分析】CSGO公众作弊ezfrags外挂分析
【游戏漏洞】《魔力宝贝》步步遇敌分析
∨
投稿文章:gslab@tengcent.com