一、尋找陽光
第一步:打開ce選擇行程植物大戰僵尸,

第二步:初始陽光值為150,輸入150,點擊首次掃描,顯示結果,

第三步:消耗(或者增加)陽光值,使陽光值產生變化為50,輸入50,點擊再次掃描,顯示結果,

第四步:單擊右鍵,選擇改變該值,進行陽光值的修改,

二、找出陽光基址
右鍵單擊,陽光記憶體地址,點擊什么訪問了該地址,

找出偏移量,和可能的地址,

點擊新的掃描,勾選16進制,輸入可能的地址,首次掃描,

重復操作,找出綠色的基址,點擊手動添加地址,

點擊指標,找出是什么修改了地址,

三、陽光產出速率
我們首次掃描未變動的初始值,然后我們進行掃描減少的數值,因為陽光產出會有CD

當陽光發光的時候,生成陽光,我們選擇增大的數值,因為她CD增加了

然后我們再次搜索減少的數值

最終得到一個陽光產出CD值,我們將它修改0,陽光不斷產出

我們可以找到結構體,很明顯,值為我們修改的1000

經過測驗,這個為該第一行第一列的植物的血量,為300
四、無限掉落陽光
下墜的陽光 我們剛出現陽光,搜索未知的初始值,然后我們選擇減少的數值

然后我們搜索減少的數值

找到了地址16B8EAF8 偏移量 00005538

再次尋找029CA860 偏移量0768

修改后為1,成功

五、自動收集陽光
找到陽光的記憶體地址,

點擊什么改寫了該地址,然后收集一次陽光,

點擊停止,顯示反匯編程式,點擊除錯,設定斷點,再次收集陽光,自動匯編,點擊模板,選擇CT表框架代碼,再選擇模板代碼注入,

將jne修改為jmp,關閉斷點,解放雙手,自動收集,

自動收集+無限掉落

六、僵尸血量
首先我們讓他被打一次,掃描一次減少的數值,

找到訪問之后,

進行再次查詢
七、關卡跳躍
當我們通關后,掃描當前關卡


然后我們修改為5,發現退回到5關了


跳關,發現計數為1

偏移量24 我們接著往上找

然后我們找到基址和偏移

八、子彈發射
我們選擇一個植物,選擇第三關

我們使用變速精靈修改0.1

然后開始選擇未知的初始值,然后子彈發射出去,我們選擇減少的數值

同時 猜測范圍應該小于2000

射出子彈的一瞬間,選擇增加的數值


改動數值后,子彈不在發射,我們對他進行匯編修改

點擊什么改寫了他


我們查看反匯編

選擇自動注入

跳轉到這里0045f8A9


我們把代碼修改為-04,射速超快

九、植物基址
我們假設植物的冷卻重繪由0 和 1來決定,那么我們可以進行不間斷搜索

首先確保三個卡槽處于正常狀態,我們進行新的掃描,點擊豌豆射手,然后進行搜索0

處于重繪狀態,我們修改為0進行查詢


之后,010101 不間斷重繪
我們修改之后,仍有30個無法確認,我們選擇尋找一個特殊值

我們將植物,拿起,放下,發現有改寫的東西


mov byte ptr [eax+ecx+70],01 也就是他將這個置換為1
EAX 為000000,ecx為108B9398 還有70的偏移量,ecx和70兩個偏移量,我們先按下不表
我們去CE中搜索整個地址


我們只找到一處地址
我們點擊,什么訪問了這個地址
點擊,放下植物,就會有很多


下一個偏移量為00000144 EDI為12aada50

我們發現有很多,然后我們對他進行逐個查看,看放置植物是否會對他發生改變

發現有一個特殊的,上面很多都是變化的,我們放置植物重繪后,留下了最新的固定地址

mov esi,[esi+00000768]
偏移量 00000768
我們再去搜索試試02571130

我們搜索到四個基址
添加后鎖定為1


然后我們去尋找第二個基址
同理找到一個70偏移量的植物


我們將幾個基址進行嘗試后,發現只有一個可以得出數值


這時候我們發現,找到的,都是原來第一個值的基址,那么到底有什么問題呢?

原來在這里

這個eax就是偏移量,就是為了查看植物修改而來的,那么我們增加70+50(這里兩個都是16進制)也就是C0的偏移再重新看看


那么為什么不能多加一個指標呢?因為加一個指標就跨段了,很明現eax 和70 都在一個ip之中,所以我們不能跨段

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/404069.html
標籤:其他
