2016-12-30 62 views
0

我正在尋找指向程序內存中結構的指針,它們相距4個字節,但數量可能有所不同。我非常肯定,在結構之後有一些其他變量不是指針。如何知道內存中的變量是否是指針?

我想如果我試圖使用下一個變量作爲指針,並將它應用到我正在尋找的結構的最高偏移量可以有,GetProcessMemory(我在C++ btw中執行此操作)會失敗,我'知道這不是我正在尋找的東西,並且我正在尋找的結構指針的「列表」在那裏結束。

但這似乎是不可靠的,因爲它可能發生,下一個變量將有一個值指向另一個有效的結構和GetProcessMemory將失敗,所以我問是否有更好的方法。

CheatEngline似乎做它非常完美,所以我缺少什麼?

預先感謝您。

+2

有沒有完全可靠的方法,只是啓發式,諸如結構類型的對準,並用於堆和棧的地址範圍。 – Barmar

+0

你可以使用'typeid(變量).name()'來獲得類型 – Raindrop7

+0

@ Raindrop7否,你不能。 –

回答

0

指針轉換爲地址。

地址是數字,就像任何其他數字一樣。

您可以增加一個數是指針的可能性,如果你知道地址的有效範圍。雖然沒有保證。

有存儲器中沒有的屬性,用於指定由所述存儲位置所示的目的或類型。

0

好的,所以我一直在想。 這是一個函數,所以我最多會放一些參數(默認值),像一個開始mem addr,指針變量之間的距離,最大金額和結構的最大偏移量。通過這些我可以知道結構的確切的每個「長度」,它的起始位置以及它不會結束的一般概念。我找到我不尋找的東西的可能性很小。

的想法是做一個HUD的遊戲,否則不會允許它(可能是黑客,因爲我從來沒有真正使用太多的數學中前場 - 它可以是有趣的)。所以,也許我可以通過結構數量找到一些偏移量,然後就不會有問題了。

相關問題