发布于:2018-9-28 17:50 | 87066次阅读 作者: 外部投稿 | 原作者: 通化程序员
在有些游戏中,由于怪物的血量较少,只攻击一两次就会死亡,所以通过血量来分析NPC遍历很难,于是我们通过NPC名字进行分析。 首先任选一个NPC,通过CE对其名字进行扫描,得到较多的结果,分别对结果修改,可以得到一个改变本地名字的地址(如图)
用OD对这个地址下访问断点,游戏直接断下(如图) 这里可以得到一个+2274的偏移,和角色对象下的名字偏移是相同的, 这说明NPC对象下的其他属性也基本和角色对象相同,执行到返回后来到一个循环代码中,分析得出这段代码是一个+4数组的循环(如图) 继续向上分析,得到数组的起始地址偏移+28和结束地址偏移+2C,再向上分析ecx发现有一个基地址,但是这个基地址是在JMP代码的上方,而JMP的下方代码是一个循环体,这说明函数并没有到JMP就已经到头部了,所以我们要执行到返回继续分析ecx的来源(如图) 执行到返回后得到+0C0偏移(如图) 再次执行到返回可以得到基地址(如图) 通过数据窗口中的数组地址可以计算处数组的成员数量并不多,也大致符合我们的周围对象(如图) 这说明我们的分析是正确的,接下来只要对比角色对象下的属性去补充NPC属性即可。 来源:通化程序员—投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) 收藏
|
最新评论
发表评论