CE修改器入门:查找共享代码
Cheat Engine 一般簡稱為CE,它是一款開放源代碼的游戲數據分析工具,其主要功能包括、內存掃描、十六進制編輯器、動態調試功能于一體,且該工具自身附帶了圖形化生成模塊,可以用它很方便的生成自己的腳本,CE可以說是目前最優秀的游戲修改器,這款修改工具絕對值得你去學習。
本關我們將學習共享代碼,在C語言中角色屬性都是以結構體的方式進行存儲的,而結構體所存儲的信息都是連續性的,這一關我們將會解釋如何處理游戲中的共用代碼,這種代碼是通用在除了自己以外的其他同類型對像上的
常常你在修改游戲的時候, 你找到了一個單位的健康值 或是你自己角色的生命值, 你會發現一種情況: 如果你把生命值相關代碼移除的話,其結果是你的角色無敵, 但你的敵人也無敵了,這就是共享代碼搞的鬼。
步驟 9: 注入++: (密碼=31337157)
本關模擬一種游戲,其中左邊為我方,而右邊為敵人,當我們點擊重新啟動并自動執行的時候我方血量不足會死亡。
你的任務是找到改寫健康的代碼, 并且修改以至于你可以獲得勝利,但"絕不能"使用鎖定HP的方法。
提示:在遍歷血量的時候應該使用單浮點數進行搜索。
1.首先你需要根據第一關中的搜索方法,分別將下面四個人物的血量搜索到,下面我已經搜索好并做好了備注。
2.你可以分別在每個動態地址上面,右鍵選擇【找出是什么改寫了這個地址】,會發現這四個地址都指向了同一條匯編代碼,這也就說明了其使用了共享代碼。
3.我們直接在每一個地址上面右鍵選擇【瀏覽相關內存區域】,然后對比四個地址會發現一些規律。
我方隊友的結構
敵人的結構
上方的四個圖片可看出我方隊友編號為1而敵人的編號為2,我們可以通過編號來判斷是否為敵人,來決定要不要讓其掉血。
當然也可以判斷名字的開頭字母來決定,如果是D或E開頭,則說明是隊友不能讓其掉血,否則的話則直接執行扣血代碼。
4.接下來我們要注入代碼了,CE切換到內存瀏覽窗口,然后選擇【工具 -> 自動匯編】,【模板 -> 代碼注入】點擊確定。
上方原始代碼是 mov [ebx+04],eax,意思就是,血量處于 ebx+04 的位置。
5.為了能夠遍歷到狀態位,我們需要計算出隊伍編號和血量的偏移值,
觀察下圖發現 Dave 血量地址是 019E0794 和隊伍編號地址 019E07A0,兩者十六進制相減(019E07A0 - 019E0794 = 0C)得到0C,如果血量是 ebx+04,那么隊伍編號就應該是 ebx+04+0C 就是 ebx+10。
6.直接寫以下匯編代碼,然后執行,注入完成后回到練習程序中然后點擊【重新啟動游戲并自動執行】,本關會順利通過。
總結
以上是生活随笔為你收集整理的CE修改器入门:查找共享代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js实现微信浏览器关闭
- 下一篇: element-ui如何进行调试