

码龄10年
暂无认证
34160访问
1
等级
8获赞
3
评论
热门文章
-
一.某岛之人物对象及其加密函数解析
2148
-
一.《传奇M》装备栏遍历的突破口
1791
-
二.某龙端游中LUA的分析和调用
1541
-
一.《轩辕传奇》周围遍历之二叉树
1386
-
一.《UE4奥丁》人物最大属性
1331
最新评论
-
20240228阿⑤
积分乍获得
-
20231124ziher
666
-
20230909八月老师
什麼時候發佈易語言支持庫呢
二.《某三国》背包遍历
Heart
2023-07-22 12:31:44 发布
318
分类专栏: 学员技术篇 文章标签: 《某三国》背包遍历
寻找物品对象
1.要找遍历 我们需要先找到一个物品对象
2.我们可以先用数量来找 通过丢弃 我们可以很快找到金创药的数量地址=0x2D3AE5D8
3.用CE给这个地址下访问 就能找到物品对象ECX ECX=0x2D3AE5A0
4.找到对象后 我们用CE搜 哪些地址存着对象0x2D3AE5A0
5.地址比较少 给每个地址下访问 发现只有 2D24C348 和 2CF54D30 有访问代码,接下来把这2个地址放到XDBG里下 硬件访问断点0x2D24C348
6.要找到这个是不是遍历,接下来只需要在这里下断 一直F9 看看EAX的值是不是在变,而且EAX等于其他道具的对象
7.这里EAX=2D3AEC20 ,放到内存窗口,查看一下是否和金创药的对象结构一样或者+38偏移是不是道具数量地址
8.验证成功 那我们只需要找 EDI来源即可
9.EDI来源 [EBX+4A4] 然后又和[EBX+4A8]比较 我们有理由怀疑这里就是数组起始和结束放到内存窗口查看一下 [2CF54D10+4A4]
10.那我们就找到了遍历了,接下来只需要找EBX来源,ebx又来源上一层的ecx,如图就是对象数组结构
11.下断返回
12.在上面那个call里走一遍发现
13.继续找ESI来源
14.ECX又来源上层的,到这里就找到基地址了
15.现在我们总结下整个遍历公式
[[[[[12D8630]+4]+C]+24]+4A4] =道具 数组首地址
[[[[[12D8630]+4]+C]+24]+4A8] =道具 数组尾地址
另外个地址是否能也能找到遍历
1.地址0x2CF54D30,同样下硬件访问断点
3.我们下端这里 一直F9也发现ESI也是道具对象,但是EBX每次加了4
4.发现下面有个循环跳上来的
5.为什么在跟A5比较呢?我们才这点道具吗?继续按F9 发现后面的对象为0 也一直在断
6.我们有理由怀疑这是一个,全部对象的遍历,因为上个地址找的是单纯的道具遍历,遍历不到装备,道具,装备,奥义,灵魄,灵兽,甚至元神,身上穿戴的装备,疑似最大容量0xA5
7.接下来我们找EBX来源 发现ECX=2CF54D10 ,我们直接用上一个地址找的偏移看有没有这个数据 或者上次找的人物属性数据偏移 看下
8. 人物没有
9.最后发现和上个遍历的偏移差不多,那么就不用继续找了直接用
10. [[[[12D8630]+4]+C]+24]+1C =数组首地址
11.[[[[12D8630]+4]+C]+24]+10 =数组大小
12.背包刚好17个东西 后面的对象为0
13.用第一个地址的写的代码遍历,测试了下没问题!
14.好啦,这个背包遍历还是挺简单的,希望大家共同进步
15.谢谢老师


评论列表