來源:http://ibf.tw/v2NbU
備註:如果作者不希望被轉帖到此處,請告知,小弟會馬上刪帖。
-------------------------------------------------------------------------------------
我們直接翻譯說明吧,經過前面幾個步驟的學習,基本上用不著再鋪墊什麼了。
步驟 8:多級指針 (PW=525927)
本關,將解釋如何使用多級指針。
在第 6 步(手記中的第五關),你已經清楚1級指針的概念和用途, 並可以利用數值的首個地址找到存放數據真正的基址。
在本關中,你將看到4級指針,它由第一個指針指向第二個指針,再由第二個指針指向第三個指針,由第三個指針指向第四個指針,最終指向血值的真正地址。
開始的幾步與在第 6 步(手記中的第五關)中的操作基本相同。找出是什麼在訪問這個數值,然後分析匯編指令,查找指針地址中的數值,以及它的偏移量,將它們記下來。但這次你按 的數值找出的仍然是一個指針,你得依據這些數值,使用同樣的操作方法找出指向這個指針的指針。
看看是什麼訪問了你發現的那個指針地址,分析匯編指令, 留意可能的代碼和偏移量,並加以利用。
持續這種過程,直到不能更進一步查找為止(通常當基址是靜態的地址時,這個地址將以綠色標識)。
點擊 "Change value" 改變血值,如果你發現列表中那些指針地址所指向的值發生同樣的變化時,那表示你可以試著將基址中的值更改為 5000,並鎖定它,以便完成本關的任務了。
備註1:這個問題也可以使用自動匯編程序腳本或者使用指針掃描器加以解決。
備註2:在某些情況下,可以改變CE軟件 "代碼查找器" 的相關設置,當你遇到像 mov eax,[eax] 的指令時,調試程序將顯示改變之後的寄存器中的值,也許利用它更容易找出指針的位置。
備註3:你還在讀?!當你查看匯編指令時你可能已經注意到,這些指針是在相同的代碼塊(相同的程序,如果你懂匯編,可以查看程序的起始代碼)位置被讀寫。這種情況並不總會發生,但是當你在查找某個指針遇到問題的時候,沒準能起到很大的用處。
這一關很讓人迷惑,關鍵點在於如何累加指針地址與偏移量,我們一步一步的來,先按照第五關所說的,查找到數值的第一個地址,將其加入CE的下方列表中,鼠標右鍵 選擇 "查找寫入該地址的代碼" ,並查看該匯編指令的詳細信息,如下圖:
記下詳細信息中需要查找的數值,記下方括號中的偏移量:18,關閉除CE主窗口外的其他CE窗口,點擊 "新的掃描" ,勾選數值框前的Hex選項,並在數值框中填入需要查找的數值,點擊 "首次掃描" ,CE主窗口的左側列表中會列出掃描到的地址,點擊 "手動添加地址" 按鈕,在彈出的 "添加地址" 窗口中勾選 "指針",分別將查出的指針地址及偏移量填入對應的文本框中,如下圖:
"確定" ,CE 將所地址添加在 主窗口下方的地址列表中,至此,我們已用完在第五關中所學到的知識,可以看到,本次掃描後,左側所列地址的顏色仍然是黑色標識的,這說明雖然我們找到了地址,但它仍然不是靜態的(不是真正的基址),需要繼續深入下去。
在加入的地址上點右健,選擇 "查找訪問該地址的代碼" ,如下圖:
這和第一次查尋指針時選擇的不一樣了,要注意一下,彈出下圖所示的窗口:
選擇第一項 "找出是什麼訪問了該指針"。
在 Tutorial.exe 窗口上 "Change value" 後,雙擊 CE 中那條匯編代碼,查看詳細信息,如下圖:
記下需要查找的數值,還有偏移量(這次方括號中不存在偏移,那麼偏移量為 0),關閉CE主窗口外所有CE窗口,按上面所說的查找新的數值,然後手動添加地址,如下圖:
下面是重點哦,此時不能點擊 "確定",我們還要完成一項任務!要知道,我們得出的這個地址是指針,這個指針指向的是上次我們找到的指針地址,而上次找到的指針地址才是指向我們在 Tutorial.exe 窗口上看到的那個數值地址,所以我們得將這樣的關係標注出來~在添加地址窗口上,點擊 "添加指針" 按鈕,如下圖:
我們只需要將上次的偏移量填在相應的位置上就可以了,現在可以點擊 "確定" 了;CE又將新的地址在下方的列表中列出;這次掃描的地址仍然不是以綠色標識的,看來我們還沒有找到真正的地址哦,繼續吧,重複上述的步驟,"查找訪問該 地址的代碼" ,"Change value" ,查看匯編代碼詳細信息,如下圖:
查找數值,添加地址,添加指針,累計偏移量,如下圖:
還不是真正的地址,繼續!重複上述步驟,查看詳細信息,如下圖:
查找數值,你會發現,找到的地址是綠色標識的哦,如下圖:
這說明我們終於來到了源頭~添加地址,添加指針,累計偏移量,如下圖:
"確定",地址出現在CE的下方列表中,如下圖:
還有什麼疑問?趕快修改數值,並鎖定,在 Tutorial.exe 上點擊 "Change pointer" ,next 按鈕變為可點擊,同時我們還能發現,除了我們找到的真正的地址數值保持不變,其他的指針地址都不再起作用了,如下圖:
本關結束,記下第八關密碼(PW=31337157),休息一下,哈~
龍大你好 我做到第二個P->xxxxxxx 第二個值都會變問號 我怎麼嘗試都一樣...
回覆刪除我的是6.5版
刪除