我正在尝试“破解”游戏(红色警报 3),我尝试制作一个程序来显示我的对手的单位列表。至于那我首先需要找到一个指向我自己的列表的(静态)指针,我可以在单人游戏中做到这一点。
我注意到了这种行为:(通过查看 add_unit 代码更改了哪些地址):
- 如果尚未构建单位,请为其创建一个新地址(随机?)并将值设置为 1(该类型的单位数量)
- 当单位已经在游戏中建造过一次时,将单位类型的原始地址加 1
这在我看来就像 std::vector 行为。现在我很难找到向量的“基”地址,还有一个更大的问题:如何按索引访问?std::vector 在哪里存储它的元素地址?
额外信息:
代码(从我从程序集中读到的)用 MS Visual C++ 2005 编译(播放需要 MSVCR80 dll)
这是向量中的地址的样子:
(突出显示的地址是作为第一个元素出现的地址 - 第一个单元构建)
这看起来不像我可以通过添加一个常量值来迭代?
每当添加新地址时,所有其他地址都完全有效并且不会更改。