发布于:2018-10-1 10:23 | 102585次阅读 作者: 外部投稿 | 原作者: 通化程序员
分析角色对象大多使用血量作为突破口,而在对血量进行扫描的时候也需要注意很多的问题,比如血量是否被加密过,血量的类型等等。而这款游戏由于血量恢复较快,所以在扫描的时候需要注意的是尽量在血量减少较多的情况下再进行过滤,否则可能会由于怪物的攻击较低,在过滤的时候血量已经恢复,这样就会将正确的结果过滤掉。 正确过滤之后可以得到4个结果(如图)
通过对4个结果周围的偏移进行观察分析,我们选择第一个结果进行分析,通过OD对其下访问断点游戏断下(如图) 断下的代码中,血量是来源于一个数组的,而由于我们下的是硬件访问断点,所以无法直接得到数组序号的数值,执行到返回后得到数组序号eax来源于第一个参数,也就是0x21,这是一个立即数,我们可以直接使用,而继续向上分析,可以得到两个偏移,以及基地址(如图) 在得到角色对象的公式后,我们还需要得到角色的其他属性,而通过对对象下的属性进行观察,我们并没有得到角色的名字,所以通过CE对名字进行扫描,得到较多的结果(如图) 图中标记的地址可以改写角色的本地显示,我们用OD对其下访问断点,得到偏移+2274,恰好在角色对象下(如图) 整理角色对象公式如下 [[6BE780]+130]+2274 角色名字ASCII型 [[6BE780]+130]+24+21*4 角色血量
来源:通化程序员—投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) 收藏 收藏
|
最新评论
发表评论