遊戲就不介紹了,所用工具為CE和OD,開始先上一張效果圖。
二、思路。
觀察可知,植物每隔一段固定時間產出陽光,可能有計算產出陽光時間的處理程式,修改該處理程式可以更改陽光產出速度。
三、實現。
假設陽光計時資料為0時植物產出陽光,產出陽光後計時資料變為最大(這裡是假設,請不要問為什麼)。CE附加遊戲程序,種植一棵產出陽光植物,具體如下:
首次搜尋未知初始值;。
回到遊戲,未產出陽光前搜尋減少的數值;。
產出陽光後立即搜一次增加的值;。
重複2、3步驟。
得到結果如下圖:
觀察可知,位址列中最後一條為計時資料地址。將該地址鎖定為0,效果見下圖:
(二)OD附加修改語句。
到此,作為普通玩家可以收工了,但作為逆向小白,工作才剛剛開始。記下計時資料地址1DC807C0,關掉CE,開啟OD(也可以先開OD附加遊戲程序,再開CE,否則OD可能附加不了程序),資料視窗跟隨計時資料地址1DC807C0,下硬體寫入斷點(也可下記憶體寫入斷點,至於優缺點一試便知),F9執行,回到遊戲,斷在下圖處:
經分析,此處為遞減計時資料語句,此時計時資料為3A,為了找出賦值計時資料的語句,手動修改計時資料為00,F9執行,回到遊戲,斷下(見下圖)。
上圖00483B00處為給計時資料賦值語句,再上一行的call跟進,檢視eax來源。如下:
0053E053處為返回,上一行修改了eax值,此處將addeax,esi語句修改為xoreax,eax,或subeax,eax,注意不要覆蓋返回語句即可。
四、小結。
本人小白,僅以此文記錄學習心得,僅做學習交流之用,不妥之處,懇請指正,祝論壇越辦越好。
以上就是植物大戰殭屍無冷卻陽光-植物大戰殭屍更改陽光產出速度的相關內容啦,關注ourplay資訊頻道,小編助你成為植物大戰殭屍大神!