将数据地址偏移量转换为 C++ 模块中的等效结构

逆向工程 艾达 反编译 C++ 注射
2021-07-04 19:27:05

我有一个我需要从中访问数据的播放器类中的属性的偏移量。它由我已经组装好的特定结构组成。IDA 报告访问偏移量如下:

v32 = ( v3 + 280 ) // v3 is the player in this case

我想在我自己的 C++ 模块中将其转换为正确的结构,以便我可以读取该结构的特定属性。我可以轻松获取玩家的基地址,但是每当我获取属性时,它都不会正确显示。

我尝试了以下内容:

playerData* lpData = reinterpret_cast<playerData*>((int)n_GetLocalPlayer() + 280);

但结构不正确。

毫无疑问,基地址或偏移量是正确的,因为我在 IDA 中反转的函数很短而且注释很好。我只需要帮助铸造它。

谢谢!

1个回答

我太傻了,n_GetLocalPlayer()需要取消引用该函数,然后再次取消引用偏移量的结果。它现在有效。这是格式:

playerData* lpData = reinterpret_cast<playerData*>((*((DWORD *)n_GetLocalPlayer() + 280)));