【幻想神域】怪物遍历分析

[复制链接]
查看: 41   回复: 1

41

主题

41

帖子

271

积分

超级版主

Rank: 8Rank: 8

积分
271
发表于 2021-5-29 18:02:31 | 显示全部楼层 |阅读模式
大部分的游戏的角色对象都是存放在怪物和NPC遍历中的, 只不过这个对象会有一些特殊性。我们来分析一下《幻想神域》的怪物遍历。
首先,选择怪物血量为突破口,随便选一个怪对其进行攻击,我们发现这个怪物的血量并没有数值显示,所以我们根据攻击数值,进行一个范围的搜索 (如图)
1.png
最终得到两个结果(如图)
2.png


分别改动两个结果,发现第二个可以改变怪物血条的长度,所以我们通过OD对其进行分析。首先下访问断点,游戏断下(如图)
3.png

得到+8+C偏移,继续向上分析,来到头部,执行到返回继续分析。得到了+C偏移(如图)
4.png


继续分析,发现这里是一个循环,esi在下面会被重复赋值,并向会跳转,所以这里是一个链表结构(如图)
5.png

跳出循环继续分析,得到+0+8偏移,执行到返回后得到410偏移,并最终得到基地址[F84B74](如图)
6.png


这样我们就得到了公式如下
[0F84B74]+410+8+4        链表对象数量
[[0F84B74]+410+8]                链表根节点
[[[[[0F84B74]+410+8]]+c]+c]+8        当前血量

来亦何哀, 去亦何苦?
回复

使用道具 举报

0

主题

15

帖子

34

积分

在线班学员

Rank: 7Rank: 7Rank: 7

积分
34
发表于 前天 09:59 | 显示全部楼层
好看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4 © 2001-2018 Comsenz Inc.