开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1080|回复: 1
收起左侧

[图文资料] 超激斗XX之背包遍历

[复制链接]
发表于 2021-2-7 15:06:54 | 显示全部楼层 |阅读模式   吉林省通化市
背包遍历作为游戏的核心数据之一,其分析方式也是多种多样,在众多的分析方式中有两种突破口是最常用的,一种是通过物品数量,一种是通过物品名字。
对于消耗品可以叠加的游戏来说,物品数量是最容易入手的方式,比如某兽,某刀等等。但是消耗品无法叠加的游戏自然就不能通过数量了,这时候就可以考虑通过物品名字或者描述来入手,比如某域,某永恒等等。
从难度上来讲,最近测试火爆游戏某某斗的背包遍历还是比较简单的,他可以直接从数量入手去分析,下面我们就来看一下分析的过程。
首先通过ce扫描,可以得到若干DWORD型的地址,通过改变数值并观察本地效果,可以确定其中的一个是我们要的地址。
xdbg64中对这个地址下访问断点,可以得到一个+8C的偏移(这里忘记记录了,所以没有截图)
向上分析,可以得到来源于一个函数内部,在返回处得到了一个数组和+74偏移
3.png
继续向上分析,在另一个CALL内部的返回处得到了一个数组
4.png
这里除了数组,还有一个+70偏移。我们先将基地址分析出来,再回头分析两个数组的下标。
继续向上分析,可以得到+124偏移,同样是在一个CALL的返回处。
5.png
在这里下F2断点后,点F9,发现RCX就已经不变了,也就是说这里已经跳出了遍历,很快就能找到基地址了。
接着分析,再次在一个CALL的内部得到+F8偏移,并且在这个偏移上面的CALL中可以得到基地址。
6.png
7.png
我们先整理下公式如下
[[[[[[7FF72983CDB0]+F8]+124]+n*8+70]+74]+m*4]+8C                物品数量DWORD
我们回头来分析下nm两个下标。首先观察m和物品数量的变化,发现这个m是物品在某个背包里的位置,而n则代表着不同的道具栏。
我们可以复制一个背包栏的对象地址,讲其拷贝到其他的道具栏的空白处,观察那些道具栏的本地数据发生改变。最后可以得到一个大概的分类,如下
n代表不同背包   0为装备栏     1为背包装备栏     2为背包道具栏     3为时装栏基本插槽
4为时装栏外观插槽    5为背包时装栏    6为境界栏     7为背包境界栏
为了准确的区分物品,我们还需要获取到物品的名字,直接通过CE扫描并下访问即可。
这个游戏的物品名字并没有放到物品库中,而是直接放到了物品对象下的某层偏移里。
8.png
这里的rdi就是物品对象,所以我们直接整理公式如下
[[[[[[[[[7FF6C5FFCDB0]+F8]+124]+n*8+70]+74]+m*4]+70]+88]+8C]+0        物品名字UNICODE
这个数据还是比较简单的,只是麻烦在对下标n的分析。
就写到这里吧,更多的数据敬请期待!


结帖率:0% (0/1)
发表于 2023-9-30 16:03:07 | 显示全部楼层   山东省枣庄市
阿斯顿发递四方速递
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表