植物大戰殭屍 尋找召喚殭屍關鍵CALL

2022-06-22 10:45:09 字數 2367 閱讀 5296

實驗目標:通過遍歷尋找召喚殭屍的call,通過呼叫call出現自定義的殭屍,加速殭屍的出現。

殭屍call的遍歷技巧:

我們可以通過殭屍出現在螢幕中的個數來遍歷尋找殭屍出現的call

首先開啟ce->進入遊戲開始新的遊戲-> 直接搜尋未知初始化資料

等待出現第乙個殭屍 ->ce搜尋-增加的數值 -> 回到遊戲中

等待出現第二個殭屍 -> ce搜尋增加的數值 ->然後殺死乙個殭屍-> 搜尋減少的數值

ce中直接選擇介於兩者之間的 -> 輸入 0 - 10 這個範圍 -> 進一步篩查

按照上面的步驟依次篩查 ,最終會看到兩個數值!

1.首先開啟ce工具,等待開始遊戲以後,我們直接【搜尋未知初始值】,因為結果太大所以位址列不會顯示。

2.當螢幕上出現第一只殭屍以後,我們直接切回ce修改器,【搜尋增加的數值】。

3.等待出現第二隻殭屍以後,我們再次【搜尋增加的數值】,經過二次排查以後,位址列的位址變得更少了。

3.等待出現第三隻殭屍以後,再次回到ce【搜尋增加的數值】,經過第三次排查,位址又變小了很多。

4.等待小推車自動的殺死乙個殭屍,或手動殺死乙隻,(我是等待小推車推死的),然後回到ce【搜尋減少的數值】。

5.接著搜尋未變動的數值,此時ce會顯示連個位址,我們加入下方位址列。

6.在ce資料視窗選中第乙個位址,右鍵選擇是什麼改寫了它,然後等待出現殭屍,會發現一條彙編**,我們記下位址【00471b57】

接著在第二個位址上同樣的操作,然後記下位址【0041de07】。

7.我們直接od載入吧,載入以後執行起來,然後到程式領空,並在【00471b57】,【0041de07】兩個地指處下兩個【f2】斷點。

8.回到遊戲等待出現殭屍,觀察發現第乙個位址【00471b57】並不是出現殭屍的位址,我們取消這個斷點,然後按下【f9】讓遊戲跑起來。

接著回到遊戲,再次等待出現殭屍,觀察(如下)位址發現,只要出現了殭屍遊戲就會被斷在【0041de07】位址處,那就非常肯定這就是關鍵位址了。

上方**,一般情況下應該不會有呼叫函式,因為這裡是只是計數器,那麼這個函式的作用應該僅僅只是乙個殭屍計數函式,所以我們要返回到上一層。

經過我的測試,上面的引數經過不同程度的修改確實可以控制殭屍的出現位置,和殭屍的型別,但這裡傳遞的引數還是過多,而且很多引數我們都用不到,那麼我們直接出這個call,去外層看一下。

9.我們在以下位置直接下【f2】斷點,等待出現殭屍od會直接斷下,我們經過單步除錯然後記下這些位址引數。

上圖的edi是乙個動態位址,因為他是殭屍物件,所以每次程式執行都會發生變化,如果想用**注入器注入**的話,則需要找到edi的基位址,接下來我們將使用ce搜尋edi的基址和偏移。

10.這裡我們使用x32dbg偵錯程式,因為od預設無法脫離程序,導致無法使用ce下斷點,直接使用x32dbg附加遊戲程序然後執行,並在的位置下乙個【f2】斷點,回到遊戲等待出現殭屍,然後x32dbg會自動斷下,我們單步【f8】並記下【esi暫存器】引數。

如上我們只需要記下【143df008】然後,選擇檔案,選擇脫離程序即可。

13.此處我們已經發現了基位址,我們直接記下來吧 【006a9f38】偏移是指向的就是殭屍的物件位址。

14.使用**注入器測試一下效果。

轉到召喚殭屍call:[00413055] 執行到返回出call

在004140c9的地方直接給mov eax,1

植物大戰殭屍

c code using system using system.drawing using system.text using system.windows.forms namespace plantsvszombiestool private void form1 load object sen...

植物大戰殭屍新植物殭屍(上)

速度 慢,同普通殭屍 西瓜投手殭屍傷害力巨大,西瓜砸碎時3 3範圍的植物全部都會受到傷害,和西瓜投手相同。魅惑無效,照樣投向植物,最好用必殺植物,地刺也能砸到 攻擊 80 3 3格仔 生命 200 出現在草地 泳池 屋頂 室內。弱點 蘿蔔保護傘 背景 一天晚上,一群殭屍劫持了西瓜投手,它們對西瓜投手...

1565植物大戰殭屍

description input output 僅包含乙個整數,表示可以獲得的最大能源收入。注意,你也可以選擇不進行任何攻擊,這樣能源收入為0。sample input 3 210 0 20 0 10 0 5 1 0 0 100 1 2 1 100 0 sample output hint 在樣例...