二.《某三国》背包遍历

寻找物品对象

1.要找遍历 我们需要先找到一个物品对象

339750812230763.png

2.我们可以先用数量来找 通过丢弃 我们可以很快找到金创药的数量地址=0x2D3AE5D8

397630812249189.png

3.用CE给这个地址下访问 就能找到物品对象ECX ECX=0x2D3AE5A0

4.找到对象后 我们用CE搜 哪些地址存着对象0x2D3AE5A0

12270912237056.png

5.地址比较少 给每个地址下访问 发现只有 2D24C348 和 2CF54D30 有访问代码,接下来把这2个地址放到XDBG里下 硬件访问断点0x2D24C348

195170912249891.png

263341012246446.png

6.要找到这个是不是遍历,接下来只需要在这里下断 一直F9 看看EAX的值是不是在变,而且EAX等于其他道具的对象

526541012242200.png

7.这里EAX=2D3AEC20 ,放到内存窗口,查看一下是否和金创药的对象结构一样或者+38偏移是不是道具数量地址

273351312260080.png

8.验证成功 那我们只需要找 EDI来源即可

9.EDI来源 [EBX+4A4] 然后又和[EBX+4A8]比较 我们有理由怀疑这里就是数组起始和结束放到内存窗口查看一下 [2CF54D10+4A4]

39671412257684.png

10.那我们就找到了遍历了,接下来只需要找EBX来源,ebx又来源上一层的ecx,如图就是对象数组结构

373301412255186.png

11.下断返回

36921512236427.png

12.在上面那个call里走一遍发现

97281512258867.png

13.继续找ESI来源

175861512254003.png

14.ECX又来源上层的,到这里就找到基地址了

277371512247549.png

15.现在我们总结下整个遍历公式

[[[[[12D8630]+4]+C]+24]+4A4] =道具 数组首地址

[[[[[12D8630]+4]+C]+24]+4A8] =道具 数组尾地址

另外个地址是否能也能找到遍历

1.地址0x2CF54D30,同样下硬件访问断点

198481712240683.png

3.我们下端这里 一直F9也发现ESI也是道具对象,但是EBX每次加了4

4.发现下面有个循环跳上来的

246371712231213.png

5.为什么在跟A5比较呢?我们才这点道具吗?继续按F9 发现后面的对象为0 也一直在断

442251712233717.png

6.我们有理由怀疑这是一个,全部对象的遍历,因为上个地址找的是单纯的道具遍历,遍历不到装备,道具,装备,奥义,灵魄,灵兽,甚至元神,身上穿戴的装备,疑似最大容量0xA5

276112312242664.png

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

411622312235549.png

8. 人物没有

592202312236158.png

9.最后发现和上个遍历的偏移差不多,那么就不用继续找了直接用

10. [[[[12D8630]+4]+C]+24]+1C =数组首地址

11.[[[[12D8630]+4]+C]+24]+10 =数组大小

599182412263113.png

12.背包刚好17个东西 后面的对象为0

282032512234624.png

13.用第一个地址的写的代码遍历,测试了下没问题!

457342512230875.png

14.好啦,这个背包遍历还是挺简单的

15.感谢大家支持迪大285530835

猜你喜欢

转载自blog.csdn.net/F_Heart/article/details/131866338