二.《某三国》背包遍历
寻找物品对象
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.我们有理由怀疑这是一个,全部对象的遍历,因为上个地址找的是单纯的道具遍历,遍历不到装备,道具,装备,奥义,灵魄,灵兽,甚至元神,身上穿戴的装备,疑似类型判断A5

7.接下来我们找EBX来源 发现ECX=2CF54D10 ,我们直接用上一个地址找的偏移看有没有这个数据 或者上次找的人物属性数据偏移 看下

8. 人物没有

9.最后发现和上个遍历的偏移差不多,那么就不用继续找了直接用
10. [[[[12D8630]+4]+C]+24]+1C =数组首地址
11.[[[[12D8630]+4]+C]+24]+10 =数组大小

12.背包刚好17个东西 后面的对象为0
13.用第一个地址的写的代码遍历,测试了下没问题!
14.好啦,这个背包遍历还是挺简单的
15.感谢大家支持迪大学院285530835
16. 官网:www.didacollege.com