首先我們思考一個問題,為什么我們需要手工計算偏移地址,CE找不開心嗎?當然不是,有些游戲比如像CF,只要查找改寫的地址游戲就會崩潰,嚴重的話則會彈出TP警告框,但查找訪問則不會出現這個情況,此時我們就需要進行手工計算偏移地址,來得到基址數據。
1.首先打開CE工具,並通過前期所學的內容快速的找到陽光的動態地址,然后我們在 141A0C90
地址上選擇查找訪問地址
,我們需要記下5560
這個偏移地址。
上圖我們通過動態地址141A0C90 - 5560
即可得到上一個指針1419B730
地址,直接在CE中繼續搜索這個地址。
2.此時我們選擇第二個動態地址,然后再次查找是什么訪問了這個地址
,可以看到是偏移是768
,繼續用00FE85C8 - 768
得到FE7E60
。
3.繼續查找這個動態地址FE7E60
,此時我們可以看到基址006A9EC0
,通過手工計算我們已經知道了其公式為006A9EC0 + 768 + 5560
完成。
-
搜索陽光的動態地址:18664588
-
00430A11 - 01 88 60550000 - add [eax+00005560],ecx <<
-
通過動態地址 - 偏移地址 =eax的地址
-
18664588 - 5560 = 1865F028
-
繼續搜索:1865F028
-
0045B6FD - 8B 81 68070000 - mov eax,[ecx+00000768] <<
-
通過動態地址 - 偏移地址 =eax的地址
-
025B9E18 - 768 = 025B9E18
-
基址:025B9E18
-
PlantsVsZombies.exe+2A9EC0
-
總結:025B9E18 + 768 + 5560 = 陽光