发布于:2018-9-30 17:20 | 94088次阅读 作者: 外部投稿 | 原作者: 通化程序员
技能遍历大多是靠技能名字做为突破口进行分析的,但是有些游戏通过名字进行访问可能会访问到一些其他的位置,比如控件之类的,比如《QQ自由幻想》,这样我们就要通过其他方式进行分析,这里我们选择通过技能等级做为突破口。 首先通过CE对某技能等级进行扫描,这里要注意的是由于技能点数不多,所以过滤时一定要小心。过滤后可以得到较少的结果,分别对这些结果进行修改,其中一个地址可以改变角色技能本地的等级显示(如图)(如图)
通过OD对这个地址下访问断点,游戏断下这里得到了一个+11A4偏移(如图) 从堆栈中可以看出edi来源于本层函数的第一个参数,所以我们执行到返回去分析第一个参数eax的来源(如图) eax来源于上面函数的返回值,我们进这个函数内部进行分析,可以得到两个数组(如图) 分别对两个数组进行分析,可以得出+128偏移的数组是一个很大的库,而+78偏移的数组则是一个较小些的数组,两个数组通过技能的ID进行关联,但是我们只需要得到技能等级,技能名字和技能ID即可,所以第二个数组内的信息就完全可以满足我们的需求,那么+128的数组就可以不去遍历。 执行到返回继续分析可以得到基地址(如图) 这样我们就得到了技能数组的公式,接下来只需要通过技能等级的判断,就可以确定哪些技能是可以释放的,哪些不是本职业的或者没有学到的。 来源:通化程序员—投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) 收藏
|
最新评论
发表评论