植物大戰僵屍:尋找陽光掉落Call調用


實驗目標:通過遍歷陽光產生的時間,尋找陽光產生的本地Call,使用代碼注入器注入,自定義生成陽光

 

陽光CALL遍歷技巧:

進入植物大戰僵屍-> 當出現陽光后->馬上搜索未知初始數值

返回游戲->  馬上切回CE->  搜索減少的數值 -> 掉一點搜一點

最后排查出它的掉落地址-> 鎖定1即可實現無限掉落

 

1.首先CE打開游戲,然后進入植物大戰僵屍,當出現陽光后我們暫停游戲,並馬上搜索未知初始數值。

 

2.返回游戲,讓陽光下落一點點, 馬上切回CE,搜索減少的數值 -> 掉一點搜一點。

 

3.經過我的不斷排查,最后排查出以下結果,我們將其加入到地址列表中,依次將我們找到的這幾個地址鎖定為1,看是否有反映。

 

4.此處我已經找到了。

 

5,我們直接在找到的地址上右鍵,選擇找出是誰訪問了這個地址,或選中這一行按下【F5】也可以,如下我們需要記下【00413BCB】這個內存地址,然后直接關閉CE,接下來我們要使用OD調試了。

 

6.打開OD直接附加植物大戰僵屍進程,【F9】讓程序跑起來,按下【Ctrl + G】輸入【00413BCB】,定位代碼,然后在該位置按下【F2】下一個斷點。

此時往上找,有一個JNZ的跳轉指令,我們雙擊在此處下一個【F2】斷點,然后運行游戲,此時會斷下,此處的JNZ如果成功跳轉則不會生成陽光,那么我們把此處NOP掉看看會出現啥結果。

 

7.如上圖,如果我們將其NOP掉的話,回到游戲會發現無限的出現陽光了,也就是說陽光的CALL就在他跳過的這些指令當中。

 

8.觀察它跳過的代碼片段,我們找一下有沒有陽光生成的CALL,如下我發現了一些帶有參數傳遞的CALL,這可能就是陽光的生成CALL了。

 

9.在PUSH的位置上下【F2】斷點,然后運行程序並等待陽光生成,生成后會斷下【F8】單步跟隨,將其中的寄存器參數記錄下來。

 

10.使用代碼注入器測試效果,默認的PUSH參數是4出現的是正常的陽光,如果我們將其改成6則會出現一個大的陽光。

 

11.如果將注入的參數改為 push 1 和push 3 那么屏幕上將出現鑽石。

 

也可以下鑽石雨!很漂亮但很危險,容易崩潰!

 

詳細分析筆記,猛戳這里:https://blib.cn/post/4ed8.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM