CE(CHEAT ENGINE)修改器新手入門教程


Cheat Engine 一般簡稱CE,是一個開放源代碼的作弊軟件,其功能包括:內(nèi)存掃描、十六進(jìn)制編輯器、調(diào)試工具,Cheat Engine 自身附帶了外掛制作工具,可以用它直接生成外掛工具,CE可以說是目前最優(yōu)秀的游戲修改器不是之一,這個工具絕對值得你去學(xué)習(xí)(只要花一點(diǎn)時(shí)間就夠了)。
本章節(jié)內(nèi)容將帶領(lǐng)小白學(xué)會使用CE,由于是入門教程所以不會講解一些太深奧的原理,其目的是教會你如何使用這款工具來修改一些游戲中的數(shù)據(jù),快速上手操作,這里我們就以CE中內(nèi)置的Tutorial-i386.exe
工具來做教學(xué)演示,如果你能夠靈活掌握演示工具中每個關(guān)卡的通關(guān)過程,那么相信你也可以將學(xué)到的技術(shù)應(yīng)用到其他任何一款游戲中,暫時(shí)不要嘗試附加網(wǎng)絡(luò)游戲除非你已經(jīng)做好了萬全的準(zhǔn)備。
更多教程:https://www.cnblogs.com/LyShark/category/1496775.html
環(huán)境準(zhǔn)備:下載并安裝CE
首先CE工具的官方網(wǎng)站是 https://www.cheatengine.org/ 下載好后解壓到指定目錄直接打開Cheat Engine.exe
既可使用了,這里給大家準(zhǔn)備好了。
CE 6.8 中文版 CE 7.1 中文版
鏈接: https://pan.baidu.com/s/19YliG62wh8BOnl6fDKZPSg 提取碼: p926
該工具打開后默認(rèn)是英文的,你需要修改一下,如下所示,選擇 edit -> setting -> 選擇中文,重啟即可。
1.打開解壓后的CE目錄你可以看到下面的目錄結(jié)構(gòu),其中Cheat Engine.exe
就是CE的主進(jìn)程,而Tutorial-i386.exe
則是一個練習(xí)環(huán)境,我們后續(xù)內(nèi)容都會圍繞這個練習(xí)環(huán)境展開.
2.接著我們打開Cheat Engine.exe(如果系統(tǒng)是32位的則打開cheatengine-i386.exe)
請務(wù)必使用管理員權(quán)限運(yùn)行CE修改器,如下:
3.使用CE修改器附加cheatengine-i386.exe
進(jìn)程,操作過程如下:
教程到這里就結(jié)束了,第一關(guān)就這么簡單
好了,點(diǎn)擊下一步
按鈕進(jìn)入下一個步驟(或輸入密碼進(jìn)入你要練習(xí)的步驟)
第二關(guān):精確掃描數(shù)值
附加Tutorial-i386.exe進(jìn)程
后,我們點(diǎn)擊教程的下一步按鈕,接著繼續(xù)第二關(guān),第二關(guān)的作用還是很簡單的,主要目的是遍歷出我們想要的動態(tài)數(shù)據(jù),比如角色的生命,人物的魔法等,都會用到精確掃描,可以說這一關(guān)是既簡單又實(shí)用的東西,也是今后外掛制作中最常用的環(huán)節(jié),接著我們看下Tutorial-i386.exe程序
對這一關(guān)通關(guān)流程的描述:
步驟 2: 精確值掃描 (密碼=090453)
現(xiàn)在你已經(jīng)在 Cheat Engine 中打開了訓(xùn)練程序,為我們下一步的練習(xí)做好了準(zhǔn)備。
本窗口的左下方顯示的"健康:XXX",
在你每次點(diǎn)擊"打我"按鈕時(shí),它的值便會減少。
要進(jìn)入下一關(guān),你必須找到這個數(shù)值并把它改成 1000 。
很多方法都可以找到這個數(shù)值的位置,但我將告訴你一個最簡單的方法,"精確數(shù)值"掃描:
上面的簡單描述的意思就是,需要將100這個數(shù)值修改為1000則本關(guān)就算通過,看下面具體的步驟
1.首先游戲規(guī)則是每次我們點(diǎn)擊打我
按鈕則健康值則會減一,我們首先搜索這個100
看能不能找到些什么.
現(xiàn)在開始搜索精確數(shù)值 100
數(shù)值中輸入100
點(diǎn)擊 首次掃描
按鈕
默認(rèn)情況下一般游戲就是4字節(jié),這里不需要改動掃描類型和數(shù)值類型
,默認(rèn)就好了.
這次掃描我們得到 35 個結(jié)果,里面肯定有我們要找的那個血值,不過好像太多了,沒關(guān)系繼續(xù)往下看.
關(guān)鍵一步:為了找到更加精確的數(shù)據(jù),我們回到 Tutorial 點(diǎn)擊 打我
按鈕,此時(shí)血值已有變化了:
我們再輸入 95
點(diǎn)擊 再次掃描
按鈕 結(jié)果只剩1個(這就是我們要找的),我們雙擊此地址將其添加到地址欄:
此時(shí)地址欄里面只有1個結(jié)果了,這個就是我們要找的內(nèi)存地址,雙擊將其加入到地址欄
在數(shù)值95上面雙擊,并修改把 95 改成 1000 點(diǎn)擊確定
按鈕,此時(shí)通關(guān).
此時(shí)回到Tutorial-i386.exe程序,會發(fā)現(xiàn)教程的 下一步
按鈕變成可用,再次點(diǎn)擊打我按鈕,數(shù)值變大了,繼續(xù)點(diǎn)擊下一步進(jìn)入第三關(guān)...
第三關(guān):未知數(shù)值掃描
經(jīng)過第二關(guān)的練習(xí),你已經(jīng)理解了如何利用"精確數(shù)值"掃描查找數(shù)值了,讓我們進(jìn)行下一步。
本關(guān)主要用來搜索進(jìn)度條,人物血條等,因?yàn)檫@些數(shù)據(jù)通常是一個進(jìn)度條,我們無法直接看到的數(shù)據(jù),此時(shí)可以通過變更的數(shù)據(jù)一步步篩選找到動態(tài)地址。
步驟 3: 未知的初始值 (密碼=419482)
在上一關(guān)中我們知道初始數(shù)值的大小,所以我們可以利用"精確數(shù)值"掃描,但本關(guān)中僅有一個狀態(tài)欄,我們并不知道它的初始數(shù)值。
我們只知道這個數(shù)值在0到500之間,并且每次點(diǎn)擊"打我"之后便會減些,每次減少的健康值會顯示在進(jìn)度條的上方。
這一關(guān)很重要,因?yàn)槟承┯螒蛑醒@示的不是數(shù)字而是血條,這樣的話教程2中的方法就失效了。
本關(guān)就你要教會你如何修改這些討厭的未知數(shù)
此時(shí)在CE修改其中點(diǎn)擊 新掃描
然后選擇 未知初始數(shù)值
,其他的選項(xiàng)不用動。
點(diǎn)擊 首次掃描
然后出現(xiàn)了肯定是N多的結(jié)果,因?yàn)樘嗔?,CE沒有顯示出來。
老辦法,回到 Tutorial.exe
,點(diǎn)擊打我 ,CE會告訴你血量減了多少,比如 -6
這里面我們換個思路,假設(shè)CE沒告訴我減少了多少或者我根本沒看清,這時(shí)應(yīng)該怎么辦呢? 注意看下面的操作
一、掃描減少的數(shù)值: 下拉框,選擇減少了的數(shù)值,按再次掃描(此時(shí)血量減少了)
二、掃描不變的數(shù)值: 拉框,然后選擇 沒變動的數(shù)值(此時(shí)血量沒有變化)
三、反復(fù)操作: 再回到Tutorial ,點(diǎn)擊 打我 => 掃描減少了的數(shù)值
=> 掃描沒變動的數(shù)值
反復(fù)操作,最后就會只剩4個地址
四、簡單判斷: 簡單判斷下(Tutorial中告訴你了這個數(shù)值是小于500的),很容易就找到了最終的地址。
雙擊把地址加到地址欄,然后更改數(shù)值為5000。
就可以過關(guān)了(前面教程有說過,這里就不再重復(fù)了)闖關(guān)成功。
大家一定要明白這樣操作的思路:
血量減少=>CE搜索減少的數(shù)值
血量不變=>CE搜索不變的數(shù)值
血量增加=>CE搜索增加的數(shù)值
這樣反復(fù)篩減,就能很容易找到最終的結(jié)果。
第四關(guān):浮點(diǎn)數(shù)的掃描
在前面的教程中我們使用4字節(jié)
的方式進(jìn)行掃描
,但有些游戲使用了"浮點(diǎn)數(shù)"
來存儲數(shù)值(這么做是為了給菜鳥制造一些麻煩,讓他們沒那么容易修改游戲)。
浮點(diǎn)數(shù)是帶有小數(shù)點(diǎn)
的數(shù)值(如 5.12 或 11321.1),正如本關(guān)中的健康和彈藥,兩者都以浮點(diǎn)方法儲存數(shù)據(jù),不同的是,健康值為單精度浮點(diǎn)數(shù),而彈藥值為雙精度浮點(diǎn)數(shù)。
步驟 4: 浮點(diǎn)數(shù) (密碼=890124)
點(diǎn)擊"打我"將減少一些健康值,而點(diǎn)擊"開火"則消耗掉 0.5 的彈藥。
你得把這兩項(xiàng)都修改到 5000 或者更多才能過關(guān)。
"精確數(shù)值"掃描的方式雖然也可以完成本關(guān)的工作,但你應(yīng)該試試其它更簡練的掃描方式。
1.在掃描浮點(diǎn)數(shù)時(shí),我們需要將數(shù)值類型改為浮點(diǎn)數(shù),浮點(diǎn)數(shù)掃描時(shí)不必輸入后的小數(shù) 97.0000 掃描時(shí)輸入97就可以了。
2.此時(shí)將97這個浮點(diǎn)數(shù)改為6000即可。
3.接著搜索雙浮點(diǎn)數(shù),也就是找到彈藥的內(nèi)存地址。
4.最后改寫彈藥將99.5改成6000即可通關(guān)。
5.最后,點(diǎn)擊下一步,本關(guān)通過。
這里面要強(qiáng)調(diào)的是:
浮點(diǎn)數(shù)的長度是4字節(jié),使用4字節(jié)也可搜索到浮點(diǎn)數(shù),但需要使用模糊搜索。
雙浮點(diǎn)數(shù)的長度是8字節(jié),使用8字節(jié)也可搜索到浮點(diǎn)數(shù),但需要使用模糊搜索
現(xiàn)在好多游戲都采用浮點(diǎn)數(shù)來處理。例如您在掃描游戲時(shí)發(fā)現(xiàn)一個數(shù)值是 1120403456 這時(shí)候您就要想到它是浮點(diǎn)數(shù)。
4字節(jié)的 1120403456 = 浮點(diǎn)數(shù)的 100 目前的游戲大多以4字節(jié)(含浮點(diǎn)數(shù))為主。
第五關(guān):代碼替換功能
某些游戲重新開始時(shí),數(shù)據(jù)會存儲在與上次不同的地方, 甚至游戲的過程中數(shù)據(jù)的存儲位置也會變動。在這種情況下,你還是可以簡單幾步搞定它。
這次我將盡量闡述如何運(yùn)用"代碼替換"功能,第五關(guān)的數(shù)值每次啟動教程的時(shí)候都會存放在內(nèi)存不同的位置,所以地址列表中的固定地址是不起作用的。
步驟 5: 代碼替換 (密碼=888899)
本關(guān)的目的就是要讓改變數(shù)值的按鈕失效,很神奇,但是有什么用呢?
1、在游戲中我們可以利用此功能使金錢數(shù)量不會發(fā)生變化。
2、可以利用此功能讓怪物攻擊失效,從而實(shí)現(xiàn)無敵的效果。
3、讓彈藥不會減少,從而實(shí)現(xiàn)無限彈藥的效果
好處太多了,本關(guān)的方法就可以輕松實(shí)現(xiàn)上面的功能。
提示:如果你以足夠快的速度鎖定住該地址,"下一步"按鈕也會變?yōu)榭牲c(diǎn)擊的。
1.首先先找到血量的內(nèi)存地址,不會找的先去看前面幾關(guān),這里就不重復(fù)了,然后 在地址上 右鍵=>找出是什么改寫了這個地址
:
2.在彈出的小窗口中點(diǎn)擊是按鈕
,會彈出一個如下所示的小窗口,這個窗口此時(shí)沒有任何數(shù)據(jù)。
3.然后我們回到教程中,點(diǎn)擊教程中的 改變數(shù)值
按鈕。會出現(xiàn)如下代碼mov[eax],edx
不用管他的意思。
4.小窗口中會出現(xiàn)一行代碼,選中代碼,然后點(diǎn)擊替換
按鈕。
5.最后一步:直接按確定就可以
6.然后回到附加的程序,點(diǎn)擊改變數(shù)值的按鈕,你會發(fā)現(xiàn)按鈕已經(jīng)沒有用了。本關(guān)操作已經(jīng)結(jié)束了
操作非常簡單,但是為什么這樣就會使按鈕的功能失效:
改變數(shù)值按鈕其實(shí)是通過 代碼 0045aecb - 89 10 - mov [eax],edx 來實(shí)現(xiàn)數(shù)值改變的。
我們在的最后一步操作就是要把這行代碼替換成什么也不做(英文是 Nop),這樣就會讓按鈕的功能失效。
第六關(guān):關(guān)于指針
上一步闡述了如何使用"代碼替換"
功能對付變化位置的數(shù)據(jù)地址,但這種方法往往不能達(dá)到預(yù)期的效果,所以我們需要學(xué)習(xí)如何利用指針。
在本關(guān)的 Tutorial.exe 窗口下面有兩個按鈕,一個會改變數(shù)值,另一個不但能改變數(shù)值而且還會改變數(shù)值在內(nèi)存中存儲的位置。
接下來我們將找到內(nèi)存中的基址, 為什么要找指針,在前面的教程中,如果各位細(xì)心觀察的話就會發(fā)現(xiàn) 在我截圖中的出現(xiàn)地址和你的地址并不相同。
也就是說,這些地址是一直在變化的,我們把它叫做動態(tài)地址。
步驟 6: 指針: (密碼=098712)
問題:電腦是如何每次都知道這個動態(tài)地址究竟是多少的?
其實(shí)并不是所有的地址都會變化的,內(nèi)存中也有不會變化的地址,我們將不會變化的地址,我們把它叫做基址。
實(shí)現(xiàn)思路:用不變的地址定位會變化的地址,即用基址定位動態(tài)地址。
1.首先老樣子,我們先找到程序的動態(tài)地址,如下我們搜索100。
2.點(diǎn)擊改變數(shù)值
后,繼續(xù)搜索。
3.找到血量的地址后,加入到地址欄,然后在地址上按 右鍵=>找出是什么改寫了這個地址
,然后點(diǎn)擊 改變數(shù)值
按鈕,出現(xiàn)一行代碼(見第五關(guān)),雙擊那行代碼(或者點(diǎn)擊詳細(xì)信息)。
4.然后出現(xiàn)一個信息框,具體的代碼是什么意思就不解釋了,CE會告訴你下一步該做什么,圖:
CE讓我們下一步找 01732898(在你電腦顯示可能不是這個地址,因?yàn)樗莿討B(tài)地址),繼續(xù)操作:
5.返回到CE,點(diǎn)擊新掃描
,先勾上HEX
,填入01732898,點(diǎn)擊首次掃描
。
一定要勾上HEX,否則CE在搜索16進(jìn)制字母時(shí)會報(bào)錯。搜索結(jié)果出來了:
這個地址 00601630 顯示的是 綠色
的,你的電腦上也應(yīng)該是這個地址,因?yàn)樗褪腔贰?/p>
記?。涸贑E中顯示綠色的地址是基址,黑色的地址是動態(tài)地址
6.手動添加一個指針,點(diǎn)擊 手動添加地址
圖示操作,輸入 00601630
然后點(diǎn)擊確定
7.注意看:指針在地址欄顯示的是 p-> 地址 這種類型的
我們將數(shù)值改成5000,再點(diǎn)擊前面的鎖定
然后點(diǎn)擊 Tutorial 中的 改變指針 按鈕,這關(guān)就可以過了。
這一關(guān)相當(dāng)重要,大家一定要多多練習(xí)(學(xué)會前六關(guān),你已經(jīng)可以修改大部分的游戲了)
說明:
1、并不是所有的游戲都要找基址然后做指針,有的游戲直接就是基址
2、基址是綠色的,如果找到最后有多個綠色地址,在一般情況下選擇第1個
第七關(guān):簡單代碼注入
從本關(guān)開始,各位會初步接觸到CE的反匯編功能,這也是CE最強(qiáng)大
的功能之一。在第6關(guān)的時(shí)候我們說到指針的找法,用基址定位動態(tài)地址。但這一關(guān)不用指針也可以進(jìn)行修改,即使對方是動態(tài)地址
,且功能更加強(qiáng)大。
代碼注入是將一小段你寫出的代碼注入到目標(biāo)進(jìn)程中并執(zhí)行它的技巧。在這一步教程中,你將有一個健康值和一個每按一次將減少 1 點(diǎn)健康值的按鈕,你的任務(wù)是利用"代碼注入",使每按一次按鈕增加2點(diǎn)的健康值。
步驟 7: 代碼注入: (密碼=013370)
教程中每按一次按鈕,會自動減少1點(diǎn)血,你的任務(wù)是將其改成每按一次按鈕增加2點(diǎn)血。
還記得第5關(guān)的不傷血的修改方法嗎?這一關(guān)就是第5關(guān)的加強(qiáng)版。
推薦你從原代碼中刪除減少健康值的那行代碼,否則你得加 3 點(diǎn)健康值
老樣子,根據(jù)動態(tài)數(shù)據(jù)反復(fù)查找
,查找血量
的地址,然后再地址上 右鍵=> 查找寫入的地址
,為啥不是查找訪問的地址呢?這里不需要明白,照著做就可以了
然后按一下打我按鈕
,會出現(xiàn)一行匯編代碼 0042585D - 83 AB 78040000 01 - sub dword ptr [ebx+00000478],01 <<
這條指令的作用是,將[ebx+678]
地址中的數(shù)據(jù)減1,sub為減法的匯編格式。
雙擊那行代碼,看下詳細(xì)信息:
這行代碼什么意思呢?sub 大家都知道是減少的意思
圖示紅框處:EBX=0184D5E0
,我們用計(jì)算器算一下(注意是16進(jìn)制的)
184D5E0+ 478 = 184DA58
---> 正好是血量的動態(tài)地址
sub [ebx+00000478] = sub [184DA58]
夠清楚了吧,這就是讓血量減1的代碼(1省略了),其實(shí)CE中也有提示 Decrement by 1 。
明白了這行代碼的意思,我們回去看看Tutorial的要求:把減1改成加2。
繼續(xù)操作。選擇反匯編程序
,如下步驟
點(diǎn)擊工具
,選擇自動匯編
第一步:選擇CT表框架
代碼
第二步:選擇代碼注入
對應(yīng)的地址不要搞錯了,是"Tutorial-i386.exe"+2585D
,這里不需要動,保持默認(rèn)就可以
然后按確定
,會自動生成
匯編代碼,這些代碼是什么意思,我們不用管,找到關(guān)鍵的一行:sub dword ptr [ebx+00000478],01
將原來的sub dword ptr [ebx+00000478],01
,改成 add dword ptr [ebx+00000478],02
,每次遞增2
然后在地址欄就可以看到這個腳本了,點(diǎn)擊前面的 單選框 執(zhí)行,然后點(diǎn)擊Tutorial中的打我,這關(guān)就可以過了。
你感覺到他的神奇了嗎?逆天級的修改:
1、怪物每次打我從傷血變成加血。
2、子彈越打越多。
3、錢越花越多。
如果你學(xué)會了這一關(guān),你已經(jīng)脫離菜鳥的行列了,已經(jīng)可以對付絕大部分的游戲了。
第八關(guān):查找多級指針
本關(guān)是第6關(guān)的加強(qiáng)版,CE 6.X 教程中的4級指針比5.X的要簡單些。多級指針就像玩解謎游戲一樣,謎團(tuán)不只一個,盒子中還有盒子。這里面是4級指針,游戲中也有比如8級指針,12級指針等等,思路都是一樣的。
在這一步將解釋如何使用多級指針。在第 6 步,你已經(jīng)清楚 1 級指針的概念和用途,并可以利用數(shù)值的首個地址找到存放數(shù)據(jù)真正的基址。
在本關(guān)中,你將看到 4 級指針,它由第一個指針指向第二個指針,再由第二個指針指向第三個指針,由第三個指針指向第四個指針,最終指向健康值的真正基址地址。
步驟 8: 多級指針: (密碼=525927)
開始的幾步與在第 6 步中的操作基本相同。找出是什么訪問了這個地址,然后記錄下動態(tài)地址
接著我們逐級向下查找,在查找的過程中,分別記錄下動態(tài)地址,以及所對應(yīng)的偏移地址
最后將這些地址相加,并鎖定數(shù)值為5000,點(diǎn)擊改變指針,然后就可通關(guān)啦
1.第一步你需要按照第二關(guān)中的方法找到,動態(tài)地址,然后加入到地址欄中。
查找一級指針: 找到血量地址 0169B5F8(動態(tài)地址),然后 右鍵 => 查找寫入
然后回到教程程序中,點(diǎn)擊 改變數(shù)值按鈕
,如下
點(diǎn)擊詳細(xì)信息
出現(xiàn)代碼的詳細(xì)信息。
這個該怎么看呢?ESI= 0169B5E0
ESI+ 18 = 0169B5F8 就是血量的地址,也就是說。想找到血量的地址就要找到ESI,注意看了圖中一行字:
>>>> 要查找地址的指針的可能值是 0169B5E0
如果您覺得分析太麻煩,就按CE的建議來,這里面要提醒各位注意 可能
這個詞,也就是說不一定全對。
第6關(guān)也提到過偏移的概念。這里面的一級偏移是 18
總結(jié):一級偏移是 18 下一個搜索目標(biāo)是 0169B5E0
查找二級指針: 下面找ESI
,勾上HEX(16進(jìn)制),輸入 0169B5E0 新掃描。
然后把新地址 0169B5E0 添加到地址欄,在地址上右鍵=>選擇 查找訪問的地址
。
一定要注意:這里面和上面的操作不同,第一次是查找寫入的地址,這次選擇的是查找訪問的地址。
如果沒有出現(xiàn)代碼信息。我們就到 Tutorial 中點(diǎn)擊一下 改變數(shù)值
按鈕,之后會收集到兩條指令,cmp 指令跟指針沒什么關(guān)系,對我們有用的是第二條指令 mov esi,[esi]。
這里由于是 mov esi,[esi] 默認(rèn)我們將其偏移地址看作是 0
不過問題來了,我們發(fā)現(xiàn),這里提示的地址和上一次提示的地址是一樣的,這是為什么呢?
CE 默認(rèn)使用硬件斷點(diǎn)的方式,斷點(diǎn)只能停在指令執(zhí)行之后,而這條指令正好是把 esi 原來指向的地址中的值再賦值給 esi,所以執(zhí)行之后 esi 的值已經(jīng)是被覆蓋掉的值了,而我們想知道的恰恰是執(zhí)行這條指令之前的 esi 值, esi 就是這個我們監(jiān)視的地址。
所以直接搜索這個地址即可。
將 0168495C 這個地址添加到下方,然后使用 找出是什么訪問了這個地址
,再來一遍。
最后得出:二級偏移是 0 ,下一個目標(biāo)是 0169B5E0
查找三級指針: 接下來和查找一級指針方法相同,這里我們在彈出的框中選擇第二條指令??煽吹蕉壠剖?14
繼續(xù)查找三級指針,方法同上,這里三級指針是0c。
最后得出:三級級偏移是 0c ,下一個目標(biāo)是 01684628
查找四級指針: 繼續(xù)搜索01684628 這個動態(tài)地址,如下。
一定要記住:在CE中顯示綠色的地址是基址,黑色的是動態(tài)地址。如果有多個綠色地址,一般情況下我們選擇第一個。
這里我們已經(jīng)找到了所有的地址,接下來串一下這些地址看看
00601660 + c + 14 +0 + 18
把基址(一級指針) "Tutorial-i386.exe"+1FD660 的值取出來,加上一級偏移 0C,當(dāng)做地址,這是二級指針的地址,再把二級指針的值取出來,加上 14,這是三級指針的地址,依次類推。
添加并測試指針: 最后測試,指針是否生效。
添加后鎖定數(shù)值為5000,然后點(diǎn)擊例子中的改變指針按鈕,看是否能通關(guān)。
多級指針要注意的地方:
1、1級指針是 查找寫入,其余全是 查找訪問。
2、綠色的地址是基址,黑色是動態(tài)地址。
3、添加指針時(shí)注意用模塊地址。
4、指針是由基址在偏移組成的,所以在教程中我們只要找到4個偏移和1個基址就可以了。
建議大家,如果想深入研究的話,最好能過學(xué)習(xí)一下Windows 32位匯編語言
第九關(guān)::查找共享代碼
本關(guān)我們將學(xué)習(xí)共享代碼,在C語言中角色屬性都是以結(jié)構(gòu)體的方式進(jìn)行存儲的,而結(jié)構(gòu)體所存儲的信息都是連續(xù)性的,這一關(guān)我們將會解釋如何處理游戲中的共用代碼,這種代碼是通用在除了自己以外的其他同類型對像上的
常常你在修改游戲的時(shí)候, 你找到了一個單位的健康值 或是你自己角色的生命值, 你會發(fā)現(xiàn)一種情況: 如果你把生命值相關(guān)代碼移除的話,其結(jié)果是你的角色無敵, 但你的敵人也無敵了,這就是共享代碼搞的鬼。
步驟 9: 注入++: (密碼=31337157)
本關(guān)模擬一種游戲,其中左邊為我方,而右邊為敵人,當(dāng)我們點(diǎn)擊重新啟動并自動執(zhí)行的時(shí)候我方血量不足會死亡。
你的任務(wù)是找到改寫健康的代碼, 并且修改以至于你可以獲得勝利,但"絕不能"使用鎖定HP的方法。
提示:在遍歷血量的時(shí)候應(yīng)該使用單浮點(diǎn)數(shù)進(jìn)行搜索。
1.首先你需要根據(jù)第一關(guān)中的搜索方法,分別將下面四個人物的血量搜索到,下面我已經(jīng)搜索好并做好了備注。
2.你可以分別在每個動態(tài)地址上面,右鍵選擇【找出是什么改寫了這個地址】,會發(fā)現(xiàn)這四個地址都指向了同一條匯編代碼,這也就說明了其使用了共享代碼。
3.我們直接在每一個地址上面右鍵選擇【瀏覽相關(guān)內(nèi)存區(qū)域】,然后對比四個地址會發(fā)現(xiàn)一些規(guī)律。
我方隊(duì)友的結(jié)構(gòu)
敵人的結(jié)構(gòu)
上方的四個圖片可看出我方隊(duì)友編號為1而敵人的編號為2,我們可以通過編號來判斷是否為敵人,來決定要不要讓其掉血。
當(dāng)然也可以判斷名字的開頭字母來決定,如果是D或E開頭,則說明是隊(duì)友不能讓其掉血,否則的話則直接執(zhí)行扣血代碼。
4.接下來我們要注入代碼了,CE切換到內(nèi)存瀏覽窗口,然后選擇【工具 -> 自動匯編】,【模板 -> 代碼注入】點(diǎn)擊確定。
上方原始代碼是 mov [ebx+04],eax,意思就是,血量處于 ebx+04 的位置。
5.為了能夠遍歷到狀態(tài)位,我們需要計(jì)算出隊(duì)伍編號和血量的偏移值,
觀察下圖發(fā)現(xiàn) Dave 血量地址是 019E0794 和隊(duì)伍編號地址 019E07A0,兩者十六進(jìn)制相減(019E07A0 - 019E0794 = 0C)得到0C,如果血量是 ebx+04,那么隊(duì)伍編號就應(yīng)該是 ebx+04+0C 就是 ebx+10。
6.直接寫以下匯編代碼,然后執(zhí)行,注入完成后回到練習(xí)程序中然后點(diǎn)擊【重新啟動游戲并自動執(zhí)行】,本關(guān)會順利通過。
到此這篇關(guān)于CE(CHEAT ENGINE)修改器新手入門教程的文章就介紹到這了,更多相關(guān)CE修改器使用教程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
Cheat-Engine 個性化修改教程 學(xué)習(xí)研究總結(jié)
下面是針對Cheat-Engine這個軟件的一些個性化修改的方法,主意是中文漢化、標(biāo)題、主題等方面的修改,網(wǎng)上pdf格式都很少,腳本之家小編特轉(zhuǎn)換成網(wǎng)頁版方便學(xué)習(xí)研究2022-01-02CHEAT ENGINE使用說明之植物大戰(zhàn)僵尸加陽光教程
ce修改器是一款內(nèi)存修改編輯工具,它允許你修改你的游戲,這里為大家分享如何為植物大戰(zhàn)僵尸游戲加陽光的方法2021-10-02- Cheat Engine是一款內(nèi)存修改編輯工具,它允許你修改你的游戲,這里為大家分享如何用ck為游戲加血,需要的朋友可以參考下2021-10-02
- CHEAT ENGINE 這是老外編的內(nèi)存修改工具,我在網(wǎng)上找了很久才找到這個教程.現(xiàn)把它放這里,主要是怕它失傳了.內(nèi)容比較亂,不過這也是網(wǎng)上唯一一篇教材了2021-10-02
ce修改器怎么修改數(shù)值?Cheat Engine6.3修改游戲數(shù)據(jù)的方法介紹
ce修改器怎么修改數(shù)值?是很多新用戶都想知道的問題,今天腳本之家小編就給大家詳細(xì)介紹一下Cheat Engine6.3修改游戲數(shù)據(jù)的方法步驟,希望對大家有所幫助2017-11-01Cheat Engine游戲腳本修改器通關(guān)教程(新手版Step1-Step9)
Cheat Engine是一款非常棒的內(nèi)容修改器,尤其針對游戲軟件等修改一些參數(shù)為了方便大家學(xué)習(xí)官方專門提供一個入門破解的小游戲,方便大家更快的入手軟件2022-01-02