1. 程式人生 > >從0開始學模擬掛(一)--找記憶體基址,包含原理 _ 指令碼..._按鍵精靈論壇

從0開始學模擬掛(一)--找記憶體基址,包含原理 _ 指令碼..._按鍵精靈論壇

本帖最後由 smilehack 於 2009-8-5 21:56 編輯

1、首先開啟CE,在設定裡面儘量使用核心模式偵錯程式


2、點選左上角的電腦圖示


3、選中游戲程序,按確定


4、可以看到人物的血量是220,所以輸入220,點首次搜尋。其他用預設

5、以下是搜尋結果,可以看到結果很多


6、出門讓怪砍,使你掉血,然後CE在掃描內型下拉框裡選擇減少的數值


7、搜尋完發現結果很多。。。。


8、沒事我們多搜尋幾次,直到出現比較少的數字為止,看現在就一個地址了


9、雙擊找到的地址,把他加入下面的方框內


10、修改描述為1.記憶體地址(表示第一次遊戲內找到的記憶體地址),右擊地址,選擇“查詢寫入該地址的程式碼”


11、以下是結果,並且雙擊找到的結果


12、然後出現如下圖片,紅色內行寫著 ecx+000001e0,這裡ecx 代表二級基址內放的數值,1e0 代表偏移量2。方框內是CE幫我們計算好的二級基址內的數值,我們就是需要他。把這個數字記下啦。通過它尋找二級基址的位置


13、點新的搜尋,然後輸入剛剛找到的二級基址內的數值,並且勾上前面的16進位制(因為這個資料是16進位制),再點選首次搜尋(找找看哪個地址內的數值,滿足上面這個數字),得到,如下兩個結果,然後雙擊這兩個結果,把他們加入下面的方框內。並且添加註釋第A次進遊戲得到的可能二級基址。


14、二級基址只有一個,所以這兩個結果只有一個是真的,(一般來說第一個是真的地址,但也不是絕對的。碰RP的話,你也可以直接用第一)所以接下來要判斷哪個才是真的二級基址。剛剛說過,退到遊戲選擇人物畫面再進遊戲,一級基址不變,二級基址不變,但是二級基址內放的數字變了
,這導致這個時候血的記憶體地址也變了。所以下面要做的就是退到人物選擇畫面,再進入遊戲,通過剛剛方法(1---13步驟),再找次二級基址,他應該和前一回找到的二級基址一樣。

下面圖中我描述為(B可能的二級基址)的東東,是我第二次搜尋得到的可能二級基址
。比較下兩次進遊戲得到的二級基址,只有紅色的地址是沒變的,說明他就是二級基址。



15、找到二級基址後,通過上圖的面板你們也發現
二級基址(10822D20 ) = 一級基址的數值() + 偏移1()
所以現在我們要找一級基址的數值 和 偏移1.

我們說過二級基址數值只要進入正式遊戲都不不會改變了,只有進入人物選擇畫面的時候才變,下面我們要做的就是跟蹤這個二級基址,回到人物選擇畫面,看看是誰往這個基址內寫入東東~






16、正式進入遊戲後,我們發現檢測到幾個結果,那到底哪個才是真的呢?
我們選擇紅色那個,因為他有mov




17、雙擊這個紅色,然後得到如下圖。紅色那行寫著 eax+ecx*4,這裡前面的eax 代表一級基址內放的數值,ecx*4 代表偏移量1。方框內是CE幫我們計算好的一級基址內的數值,我們就是需要他。把這個數字記下啦。通過它尋找一級基址的位置。同時我們發現ecx代表的是4(十六進位制),4(十六進位制)*4=10(十六進位制)。10就是偏移1




18、搜尋一級基址內的數值10822D10,看看哪個地址內裝的是他。結果就一個




19、好了現在我們知道所有的東西了,紅色部分是無論哪次進遊戲都不變的。找到他們,現在就能進行找血的記憶體位置了。

一級基址(012BAB94 )
二級基址(10822D20 ) = 一級基址的數值(10822D10) + 偏移1(10)
血記憶體地址(055FCE18) = 二級基址的數值(055FCC38) + 偏移2(1e0)