我正在使用稱爲Cheat Engine的內存編輯應用程序。我將Cheat Engine附加到遊戲中。在我的遊戲中,我有一個稱爲HP的32位整數。 HP存儲在內存地址A中。如果我重新啓動遊戲,HP將存儲在新的內存地址B中。似乎使用Cheat Engine,我可以執行指針掃描並找到指向的靜態內存地址C另一個內存地址及其相應的偏移量D和偏移量,以便在該會話期間[D +偏移量]始終存儲HP的內存地址。所以如果我解引用[D + offset],我總是得到存儲HP的內存地址。指針的偏移有什麼好處?
這裏是一個圖:
A或B - > HP
d +偏移 - > A或B
Ç - > d
優點是什麼使用偏移?爲什麼C不能直接指向A或B?我很熟悉使用偏移量在處理C語言中的數組時很有用。這是否意味着只要我看到指針的偏移量,指針就指向數組中的第一個元素,偏移量是指數組中的一個元素?
在這個級別的答案可能會受到代碼旨在運行的芯片(或虛擬機)的體系結構和指令集的嚴重影響。一些指令集通過爲偏移索引提供快速尋址模式來鼓勵這種情況。 – dmckee 2013-04-23 16:32:54