如何知道内存中的变量是否为指针?

时间:2016-12-30 22:50:25

标签: c++ pointers memory struct

我正在搜索程序存储器中的结构指针,这些结构彼此相距4个字节,但数量可能会有所不同。我很确定在结构之后会出现一些不是指针的其他变量。

我想如果我尝试使用下一个变量作为指针并向其应用我正在寻找的结构可以具有的最高偏移量,GetProcessMemory(我在c ++ btw中执行此操作)将失败,并且我'我知道这不是我正在寻找的东西,并且我正在寻找的结构指针的“列表”到此为止。

但这似乎不可靠,因为可能会发生下一个变量有一个指向另一个有效结构的值而GetProcessMemory会 NOT 失败,所以我问是否有更好的方法。< / p>

CheatEngline似乎做得非常完美,所以我错过了什么?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

指针转换为地址。

地址是数字,就像任何其他数字一样。

如果您知道有效的地址范围,则可以增加数字是指针的概率。虽然没有保证。

内存中没有指定内存位置所代表的用途或类型的属性。

答案 1 :(得分:0)

好的,所以我一直在想。 这是一个函数,所以我最常放一些参数(默认值),如启动mem addr,指针变量之间的距离,最大数量和结构的最大偏移量。有了这些,我就可以知道确切的说长度&#39;结构,它开始的地方,以及它赢得结束的一般概念。我找到一些我不寻找的东西的可能性微乎其微。

这个想法是为了一个本来不会允许的游戏(也许是一个黑客,因为我以前从来没有在游戏中使用过多的数学 - 它可能很有趣)。所以也许我可以找到一些带有结构数量的变量的偏移,然后就没有问题了。