2013-02-21 85 views
0

WriteProcessMemory()的其中一個參數顯然要求指向基地址的指針。但是如果它是一個多級指針呢?例如,假設我必須找到一個指針3次才能最終獲得靜態地址,第一個偏移量爲0,第二個爲57,第三個爲268.現在,如果我想寫入該確切位置,我將如何將偏移量包含到WriteProcessMemory()函數中,並且必須包含所有三個偏移量還是隻包含導致靜態地址的最後一個偏移量?爲了澄清事情,我基本上正在練習操縱PC上第一人稱射擊遊戲的記憶。我的目標並不是真正的黑客或任何東西。我只是想練習將內存寫入進程。 (例如,我會嘗試在「健康」地址或「彈藥」地址中寫入新值)。我主要想知道如何解釋多級指針中的偏移量。在C++中使用WriteProcessMemory()和多級指針和偏移量?

+0

請注意:['ReadProcessMemory'和'WriteProcessMemory'不是IPC機制](http://blogs.msdn.com/b/oldnewthing/archive/2006/01/17/513779.aspx)。 – 2013-02-21 01:53:13

回答

0

地址是地址。無論你是否使用多級指針(指向指向指針的指針)都可以。

基地址是您要寫入的地址。什麼解決你的多級指針指向,進入該參數。

0

WriteProcessMemory將絕對數據放入內存中。如果你想寫一個多層結構到內存中,例如在元素中有指針,那麼你需要根據遠程的lpBaseAddress和寫入的數據量來寫指針值,並且你需要寫入內存中的數據。

如果您正在編寫的結構中有指針,那麼除非您將它們重寫爲您正在編寫的目標數據的一部分,否則它們將無法工作。