作者:whatday
來源:http://ibf.tw/v2NbU
備註:如果作者不希望被轉帖到此處,請告知,小弟會馬上刪帖。
-------------------------------------------------------------------------------------
我記得《植物大戰僵屍》的太陽數值就是變動的,第四關的學習,我想便能解決這個問題了~
第五關的說明翻譯如下:
步驟 6: 指針 (PW=098712)
上一步解釋了如何使用 代碼查找 功能對付變化位置的數據地址,但這種方法往往不能達到預期的效果,所以,我們需要用到指針。
在本關的 Tutorial.exe 窗口下面有兩個按鈕,一個會改變數值,另一個不但能改變數值而且還會改變數值在內存中存儲的位置。
在這一步,你不需要懂匯編,但如果你懂的話會很有幫助。
首先找到數值的地址,然後,再找到是什麼在改寫這個地址。再次改變數值,CE 便可以將找到的匯編代碼列出來,雙擊一行匯編代碼(或選擇它 並點擊 "更多信息"),打開的 更多信息窗口 將顯示詳細的信息,來告訴你當這個指令運行時發生什麼事情。
如果這條匯編指令中,沒看到方括號([])的存在,我們就應該換另外一條匯編代碼查看詳細信息,如果看到了方括號,那就表示我們找到了需要的指針了。
除了 更多信息窗口我們暫時保留以外(如果你已經關掉了,那麼要記好方栝號中間的代碼),剩餘的窗口請關閉掉,回到CE主窗口,做一次4字節的掃描,掃描 更多信息窗口 中告訴你的一串十六進制數值。
當掃描完成時,它可能返回一個或幾百個地址。大多數情況下你想要的會排在地址列表中的最上面。
點擊 手工添加地址 按鈕,並在勾選 "指針" 選項。
添加地址窗口 將發生變化,多出了 "Address of Pointer" 和"Offset (Hex)" 的文本框,在 "Address of Pointer" 那一欄中填入剛才掃描到的地址。
如果匯編指令中的方栝號中存在計算(例如:[esi+12]),那麼應當把數值部分填在 "Offset (Hex)" 的文本框中,如果不存在,則讓它保持為 0 。
如果看上去是更複雜的計算指令的話,不若舉例說明一下:
[EAX*2+EDX+00000310] eax=4C 並且 edx=00801234 (在更多信息窗口的下方,會列出寄存器中的值)
這種情況下 EDX 便是數值的指針,而 EAX*2+00000310 則是它的偏移量,所以你要填在 "Offset (Hex)" 將是 2*4C+00000310=3A8 (這些都是在十六進制下計算的,你可以使用WINDOWS的計算器,在科學方式下用十六進制計算)。
點擊確定,這個地址便會加到 CE主窗口下方的列表上,如果沒做錯,在地址處將顯示 P->xxxxxxxx,而 xxxxxxxx 會和你掃描到的地址數值是一致的,如果不一致,那麼你可能哪裡出錯了。
現在,改變那條指針地址的數值 5000 並鎖定它,,然後點擊Tutorial.exe窗口上的 "Change pointer" 按鈕,如果一切正確,那麼 "next" 按鈕將變成可點擊狀態了。
提示:
你也可以使用 "掃描該地址指針" 的方式來找到這個指針地址。
看上去好頭暈,我們一步一步的來,用第四關的方式我們可以找到數值的地址,將地址轉入CE下方的列表中,點擊鼠標右鍵,選擇 "查找寫入該地址的代碼" ,如下圖:
在Tutorial 窗口中點擊 "Change Value" 按鈕,回到 CE ,出現改動地址的匯編代碼,查看更多信息,如下圖:
按照本關的說明,只要匯編代碼的指令中含有方括號的部分,就象上圖中代碼裡的 "[eax]",我們便可以基本上判斷找到了指針數據;並且CE會提示我們應該查找的數值,呵呵,就是中間用英文 "Copy memory" 開頭的部分,我們只需要在這部分提示文字上點擊鼠標右鍵,選擇 "複製信息到剪貼板",便可以複製數值,以備後用,如下圖:
關閉不需要的窗口,回到CE主窗口,點擊 "新的掃描" ,將剛才獲得的一串十六進制的數值填在數值框中,然後點擊 "首次掃描" ,參照下圖設置:
掃描後,得到惟一的地址,如下圖:
看到地址用綠色的標注,表示我們找到了需要修改的數據其真正的固定地址,現在,我們點擊,"手動添加地址" 按鈕,參照下圖填寫:
因為匯編代碼方括號中的指令,並不存在本關說明中所說的計算,所以,"Offset (Hex)" 中填入 0,點擊確定,在CE 主窗口的下方列表中出現該條地址,如下圖:
呵呵,正象說明中所說的,地址以 P->xxxxxxxx 的形式出現,xxxxxxxx 也與掃描到的地址數值一致;最關鍵的,它所指向的數據與最初找到的也一致,就是列表的 "數值" 部分。
現在可以改數值為 5000,並且鎖定它了,如下圖:
在Tutorial 窗口中點擊 "Change pointer" 按鈕,next 接鈕可以點擊了;記下第六關的密碼 (PW=013370) ,好好休息一下~
沒有留言:
張貼留言