我正在努力" hack"使用Visual Studio 2005(MSVCR80.dll需要播放)编译的游戏(Red Alert 3,封闭源代码..),
我尝试制作一个显示对手单位列表的程序。至于那个我首先需要找到一个指向我自己列表的(静态)指针,我可以在单人游戏上做。
我有一些问题,因为我无法弄清楚我的静态指针是否真正指向我想要的东西。
我注意到了这种行为:(通过查看add_unit代码更改了哪些地址):
所以其他地址无效或其他什么?
这是添加的地址的示例,突出显示的地址是添加的第一个地址:
可以使用哪种类型的std :: container? 它肯定不是一个向量,因为在插入新元素时,向量会使所有其他地址无效吗?
编辑/更新: 至于现在,我已经能够重建这个结构:
struct UnitsInfo
{
DWORD * someptr_1_to_other_UnitsInfo_struct;
DWORD * someptr_2_to_other_UnitsInfo_struct;
DWORD * someptr_3_to_other_UnitsInfo_struct;
int unkown_1;
unsigned int Type;
unsigned int Amount;
};
并且some_ptr的东西指向所有其他单元地址,我需要找出它是如何工作的。然后我可以有效地创造一切。
答案 0 :(得分:1)
似乎是在升序地址。这看起来像是通过分配器添加到任何容器中的东西。我猜测和侵入链接列表中的对象在某种分配器上。
我希望这会有所帮助。