2014-06-15 131 views
0

我正在做一些關於黑客攻擊的研究,並且我發現了一些用於內存黑客的Cheat Engine教程。 如果我們想查找變量的內存地址,我們必須使用Cheat Engine掃描進程的內存來查找地址。但是,由於這些地址是動態的,每次運行該遊戲的新過程時,地址都會改變。程序中變量的基地址/靜態地址是什麼?

因此,本教程介紹了靜態地址,該地址不會針對遊戲的每個實例進行更改。爲了找到這個地址,我們必須反覆掃描「什麼訪問這個地址」,使用前一次掃描的程序集中的寄存器來查找下一個。 該組件將是

操作碼的形式[ESI +偏移]

所以在結束時,我們得到的地址和偏移,這恰好是基地址。

但這是如何工作的?

另外,我不太瞭解基地址的概念。它是程序加載到內存中的某種相對地址嗎?這樣,當我們再次加載程序時它不會改變?

+0

我想確保我明白:你在問「一些作弊引擎」是如何工作的? –

+0

更多基本指針的工作方式 – lor

回答

1

問題中的變量可能存儲在運行時動態分配的類中,這就是爲什麼變量的地址在每次運行時都會更改。被動態分配的東西必須引用該地址,這就是靜態地址開始起作用的地方。在你的例子中,ESI很可能被分配了分配類的基地址存儲地址,例如mov esi, [somevar]語句(其中somevar是一個包含分配地址的指針變量),offset是類中目標變量的字節偏移量。所以先找到somevar,然後你可以按照目標變量。