游戏逆向1. 寻找基值
游戏逆向1. 寻找基值
结构体地址寻找
在游戏开发中, 很多数据的组织形式如下
1 | |
在寻找到其中一个字段后, 便可以通过它的偏移获取到其结构体的地址
实战:

可以看到其中有很多的形如 cmp dword ptr [ecx+230], 00 的指令, 可以获知 hp 字段的偏移为 230 , 且数据类型为dword
人物数据存储位置寻找
这个结构体99%是存储在堆上的, 现在已经知道了结构体的地址为 ECX=6AED1FE0, 现在可以去搜索51264410在哪里出现过
这种存储结果一般有三种类型, 分别为 链表, 数组, 二叉树. 可以在搜索后通过查看内存信息进行判断

虽然网上说它使用的数据结构是链表, 但是内存中看不出来链表的指针结构, 反而像是一个数组, 再看其内存结构, 更像数组了

每个结构体大小为0x18, 第一个字段便指向人物结构体, 那么其基地址为
523A05D4 - 518F000 = AB05D4
人物位置和视角数据分析
一般来说, 血量和人物数据很有可能是放在同一个结构体内的, 那么只要在血量附近查看数据即可搜索到

在连续移动时, 发现这三个地址一直在变, 可推测为人物位置
游戏逆向1. 寻找基值
https://simonkimi.githubio.io/2024/08/04/游戏逆向1-寻找基值/