日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Cheat Engine CE官方教程 [汉化]

發(fā)布時(shí)間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cheat Engine CE官方教程 [汉化] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CE修改器官方教程漢化版,區(qū)別于前款教程,官方教程中使用的是Tutorial64位程序,如下是經(jīng)過翻譯后的官方文檔。

第一步:歡迎

當(dāng)教程啟動(dòng)時(shí),您應(yīng)該會(huì)看到類似的東西,您只需在閱讀幫助文本后單擊“下一步”按鈕即可。

在后面的步驟中保存密碼,以防崩潰(從注入中)并在以后重新啟動(dòng)。

運(yùn)用CE如何附加到進(jìn)程

  • 1.打開要附加到的進(jìn)程/游戲(如果尚未打開)。
  • 2.打開作弊引擎(如果尚未打開)。
  • 3.單擊作弊引擎窗體工具欄中的計(jì)算機(jī)圖標(biāo),如果作弊引擎剛剛打開,它應(yīng)該會(huì)閃爍,或者在作弊引擎主窗體菜單上選擇進(jìn)程。

4.從列表中選擇進(jìn)程。

5.單擊打開按鈕或雙擊該過程。您應(yīng)該會(huì)在窗體頂部看到進(jìn)程名稱。您現(xiàn)在已附加到該進(jìn)程。

第二步:精確值掃描

對(duì)于步驟2,您將看到類似這樣的東西。

我們需要找到的是健康,這里是一個(gè)整數(shù)。

因此,設(shè)置內(nèi)存掃描程序以查找整數(shù),然后進(jìn)行精確值掃描,然后將該值設(shè)置為當(dāng)前運(yùn)行狀況值,大多數(shù)整數(shù)將存儲(chǔ)在4字節(jié)變量中,因此讓我們從那里開始。

注意:整數(shù)可以存儲(chǔ)在 1 字節(jié)變量(字節(jié))、2 字節(jié)變量(int16/短)、4 字節(jié)變量 (int32/int) 或 8 字節(jié)變量 (int64/long) 中。

準(zhǔn)備就緒后,單擊第一個(gè)掃描按鈕。

您應(yīng)該在找到的地址列表中看到一個(gè)地址列表,如下所示。

現(xiàn)在點(diǎn)擊點(diǎn)擊我按鈕,然后重新輸入當(dāng)前值,然后單擊下一次掃描按鈕。

請(qǐng)注意列表中的紅色值,這表示該值已更改。

單擊下一次掃描后,您可能需要繼續(xù)單擊擊中我,然后重新掃描,告訴找到的地址列表足夠小,可以使用。

只需雙擊找到列表中的地址,即可將其添加到作弊表中。然后更改值并凍結(jié)地址,雙擊地址列表中的值進(jìn)行編輯,通過單擊啟用碼/凍結(jié)框?qū)⑵鋬鼋Y(jié)。

現(xiàn)在應(yīng)該啟用下一個(gè)按鈕,單擊它以轉(zhuǎn)到下一步。如果下一個(gè)按鈕尚未啟用,請(qǐng)?jiān)俅螁螕酎c(diǎn)擊我按鈕。

第三步:未知的初始值

當(dāng)您開始步驟 3 時(shí),您應(yīng)該會(huì)看到表單如下所示。

就像幫助文本所說的那樣,請(qǐng)確保在開始新掃描之前單擊新掃描按鈕。

這將清除找到的結(jié)果以開始掃描新值。

在這里,我建議繼續(xù)單擊點(diǎn)擊我按鈕,只是為了查看值是如何減小的,以幫助確定要掃描的值類型。

請(qǐng)注意,該值減小了一個(gè)整數(shù),即非小數(shù)。

因此,我將掃描儀設(shè)置為4個(gè)字節(jié)和未知的初始值。然后單擊第一個(gè)掃描按鈕。

現(xiàn)在點(diǎn)擊點(diǎn)擊我按鈕。然后將掃描類型設(shè)置為減小值,然后單擊嵌套掃描按鈕。

請(qǐng)注意找到的地址數(shù)量,對(duì)于當(dāng)今的大多數(shù)游戲來說,這有點(diǎn)小,對(duì)于大多數(shù)游戲來說,找到的結(jié)果很容易達(dá)到數(shù)百萬。

現(xiàn)在,只需使用點(diǎn)擊我按鈕繼續(xù)減小該值,然后掃描減小的值,直到找到的結(jié)果足夠小,可以使用。

現(xiàn)在我們只需選擇一個(gè)地址并更改值以查看它是否具有所需的效果,這就是它的工作原理。

在這里,我建議您在更改值(或只是Ctrl + C)之前始終注意這些值,以便在它們不是正確的值時(shí)將其設(shè)置回去,以防止在游戲中執(zhí)行此操作時(shí)更改一堆未知地址并損壞保存文件。

一旦您將值設(shè)置為 5000,下一步按鈕應(yīng)立即變?yōu)閱⒂脿顟B(tài)。更改值并單擊點(diǎn)擊我按鈕后,進(jìn)度條應(yīng)填充,但這不是必需的。

現(xiàn)在應(yīng)該啟用下一個(gè)按鈕,單擊它以轉(zhuǎn)到下一步。如果下一個(gè)按鈕尚未啟用,請(qǐng)?jiān)俅螁螕酎c(diǎn)擊我按鈕。

第四步:浮點(diǎn)數(shù)

當(dāng)您開始步驟 4 時(shí),您應(yīng)該會(huì)看到表單如下所示。

因此,請(qǐng)單擊新建掃描按鈕。然后為掃描儀設(shè)置一個(gè)浮點(diǎn)數(shù),精確值,輸入當(dāng)前運(yùn)行狀況值。設(shè)置時(shí),單擊第一個(gè)掃描按鈕。

因此,只需像以前一樣掃描以查找健康地址,然后將其添加到地址列表中。

現(xiàn)在再次單擊新的掃描按鈕。然后將掃描儀設(shè)置為雙精度值,輸入當(dāng)前彈藥值。設(shè)置時(shí),單擊第一個(gè)掃描按鈕。

因此,只需像以前一樣掃描以查找彈藥地址,然后將其添加到地址列表中即可。

現(xiàn)在將值更改為5000,然后下一步按鈕應(yīng)變?yōu)閱⒂脿顟B(tài)。然后單擊下一步按鈕以繼續(xù)執(zhí)行下一步。

第五步:代碼查找器

當(dāng)您開始步驟 5 時(shí),您應(yīng)該看到表單如下所示。

因此,首先找到該值,然后將其添加到地址列表中。此時(shí)繼續(xù)保存表和密碼,以防調(diào)試器設(shè)置不正確。

在地址列表中擁有地址后,右鍵單擊它,然后選擇找出訪問此地址的內(nèi)容。

作弊引擎將提示您有關(guān)附加調(diào)試器的信息,只需單擊是按鈕即可。

然后將打開一個(gè)調(diào)試器窗體,現(xiàn)在單擊更改值按鈕,您應(yīng)該獲得顯示在調(diào)試器窗體中的代碼。

我們想要的是一個(gè)書面指令。因此,我們將尋找一些類似于以下內(nèi)容之一的東西:

mov [**],** add [**],** sub [**],** *** [**],**

選擇寫入指令的代碼行,可以單擊顯示拆裝器按鈕以查看內(nèi)存中的代碼,然后單擊替換按鈕。最后不要忘記單擊停止按鈕。

替換按鈕會(huì)將該行代碼替換為NOP。作弊引擎將提示您輸入它將添加到高級(jí)選項(xiàng)列表中的條目的名稱。

輸入名稱,然后單擊確定按鈕。

現(xiàn)在,單擊教程中的更改值按鈕。下一步按鈕應(yīng)變?yōu)閱⒂脿顟B(tài),然后單擊下一步按鈕以前進(jìn)到下一步。

當(dāng)高級(jí)選項(xiàng)列表中的條目被替換時(shí),它們將顯示為紅色文本。

可以通過單擊作弊引擎主窗體左下角狀態(tài)欄中的高級(jí)選項(xiàng)按鈕來查看高級(jí)選項(xiàng)列表。

要還原列表中某個(gè)條目的原始代碼,請(qǐng)右鍵單擊該條目,然后選擇使用原始代碼還原。

請(qǐng)注意,恢復(fù)后文本為黑色。

第六步:指針

當(dāng)您開始步驟 6 時(shí),您應(yīng)該看到表單如下所示。

因此,首先找到該值,然后將其添加到地址列表中。

在地址列表中擁有地址后,右鍵單擊它,然后選擇找出訪問此地址的內(nèi)容。

然后單擊更改值按鈕,讓進(jìn)程訪問該地址。

選擇代碼以查找指針的基址時(shí),請(qǐng)嘗試選擇不寫入與基址相同的寄存器的指令。

在這里,我們對(duì)方括號(hào)[]之間的值感興趣,因此這里我們需要RDX的值。

這里的偏移量是0,如果指令有這樣的東西:

mov [rdx+12C],eax

然后偏移量將為12C(0x12C),請(qǐng)注意,這是十六進(jìn)制。

現(xiàn)在將掃描儀設(shè)置為8個(gè)字節(jié),精確值,選中十六進(jìn)制復(fù)選框,然后獲取找到的值并將其作為要掃描的值。

準(zhǔn)備就緒后,單擊第一個(gè)掃描按鈕。

在找到的地址列表中查找?guī)в芯G色文本的地址,這些是靜態(tài)地址。

將一個(gè)添加到作弊表,雙擊已添加到地址列表的內(nèi)存記錄的地址,復(fù)制該地址,然后選中指針復(fù)選框,然后將該地址粘貼到指針基址中。

所以我的指針看起來像["Tutorial-x86_64.exe"+XXXXXX]+0這樣。

設(shè)置指針時(shí)單擊確定按鈕。

現(xiàn)在將值凍結(jié)在5000并單擊更改指針按鈕,下一個(gè)按鈕應(yīng)該變?yōu)閱⒂脿顟B(tài)。

如果下一個(gè)按鈕未啟用,則從找到的列表中選擇另一個(gè)地址,查找更改其值的綠色地址,并將其設(shè)置為與上一個(gè)地址一樣,并查看它是否指向正確的值,如果是這樣,請(qǐng)更改值凍結(jié)并單擊更改指針按鈕。

單擊下一步按鈕前進(jìn)到下一步。

第七步:代碼注入

當(dāng)您開始步驟 7 時(shí),您應(yīng)該會(huì)看到表單如下所示。

在這里,我們將遵循與步驟 5 相同的過程,但不是單擊替換,請(qǐng)單擊顯示反匯編器按鈕。

這將在指令的地址打開反匯編器視圖表單。

選中該指令后,按 Crtl+A 打開自動(dòng)匯編程序窗體。

在自動(dòng)組裝器表單菜單中,選擇模板,然后選擇完全注入。

這將生成一些腳本來啟動(dòng)。

現(xiàn)在,我們需要添加一些將值增加 2 的代碼,然后刪除減小該值的原始代碼。

為了增加價(jià)值,我們可以使用INC或ADD。

所以讓我們嘗試這樣的事情。

... newmem:add dword ptr [rsi+780],2code://sub dword ptr [rsi+00000780],01jmp returnaddress:jmp newmemnopnop return: ...

現(xiàn)在將腳本添加到作弊表,然后啟用腳本并單擊“點(diǎn)擊我”按鈕。

這應(yīng)該啟用下一步按鈕,因此單擊下一步按鈕轉(zhuǎn)到下一步。

第八步:多級(jí)指針

當(dāng)您開始步驟 8 時(shí),您應(yīng)該會(huì)看到表單如下所示。

手動(dòng)迭代

在這里,我們將遵循與步驟6相同的步驟,除了我們將看到哪些內(nèi)容訪問了我們找到的基址,并且我們將繼續(xù)重復(fù)此操作,直到找到靜態(tài)基址。

這是我的第一個(gè)調(diào)試器輸出。

10002D8D1 - B9 A00F0000 - mov ecx,00000FA0 10002D8D6 - E8 3522FEFF - call Tutorial-x86_64.exe+XXXXXX 10002D8DB - 89 46 18 - mov [rsi+18],eax <<<<<< 10002D8DE - 89 C2 - mov edx,eax 10002D8E0 - 48 8D 4D F8 - lea rcx,[rbp-08]RAX=00000000000007F7 RBX=000000000125CD60 RCX=0000000000000FA0 RDX=00000000828087F3 RSI=0000000001287960 <<<<<< RDI=0000000100258308 RSP=000000000102F070 RBP=000000000102F0B0 RIP=000000010002D8DE R8=0000000100161BA0 R9=00000000008E06A0 R10=0000000000000002 R11=0000000000000206 R12=00000000012607C0 R13=0000000100161BA0 R14=0000000100258300 R15=0000000100257A18

我確實(shí)在基址的第一次掃描中發(fā)現(xiàn)了一個(gè)靜態(tài)基數(shù),但我記得這是一個(gè)虛假的基數(shù)。所以這里我們想要的是一個(gè)process.exe+offset形式的基址,你可以嘗試其他看起來像module.dll+offset的基址,但我想說的是,在這里它們將被證明是錯(cuò)誤的指針。是的,大多數(shù)較新的游戲都會(huì)有許多錯(cuò)誤的值和指針。

調(diào)試器從地址保持輸出:0000000001287960

10002D88B - E8 90961200 - call Tutorial-x86_64.exe+XXXXXX 10002D890 - E9 65000000 - jmp Tutorial-x86_64.exe+XXXXXX 10002D895 - 48 83 3E 00 - cmp qword ptr [rsi],00 <<<<<< 10002D899 - 74 5F - je Tutorial-x86_64.exe+XXXXXX 10002D89B - 48 8B 36 - mov rsi,[rsi]RAX=0000000000013117 RBX=000000000125CD60 RCX=000000000125CD60 RDX=0000000000003CE3 RSI=0000000002D6D540 <<<<<< RDI=0000000100258308 RSP=000000000102F070 RBP=000000000102F0B0 RIP=000000010002D899 R8=0000000100161BA0 R9=00000000008E06A0 R10=0000000000000002 R11=0000000000000206 R12=00000000012607C0 R13=0000000100161BA0 R14=0000000100258300 R15=0000000100257A18

調(diào)試器輸出的地址保持:0000000002D6D540

10002D845 - E8 D6961200 - call Tutorial-x86_64.exe+XXXXXX 10002D84A - E9 AB000000 - jmp Tutorial-x86_64.exe+XXXXXX 10002D84F - 48 83 7E 18 00 - cmp qword ptr [rsi+18],00 <<<<<< 10002D854 - 0F84 A0000000 - je Tutorial-x86_64.exe+XXXXXX 10002D85A - 48 8B 76 18 - mov rsi,[rsi+18]RAX=00000000000166D2 RBX=000000000125CD60 RCX=000000000125CD60 RDX=000000000000302E RSI=0000000002D6CE40 <<<<<< RDI=0000000100258308 RSP=000000000102F070 RBP=000000000102F0B0 RIP=000000010002D854 R8=0000000100161BA0 R9=00000000008E06A0 R10=0000000000000002 R11=0000000000000206 R12=00000000012607C0 R13=0000000100161BA0 R14=0000000100258300 R15=0000000100257A18

調(diào)試器輸出的地址保持:0000000002D6CE40

10002D800 - E8 1B971200 - call Tutorial-x86_64.exe+XXXXXX 10002D805 - E9 F0000000 - jmp Tutorial-x86_64.exe+XXXXXX 10002D80A - 48 83 7E 10 00 - cmp qword ptr [rsi+10],00 <<<<<< 10002D80F - 0F84 E5000000 - je Tutorial-x86_64.exe+XXXXXX 10002D815 - 48 8B 76 10 - mov rsi,[rsi+10]RAX=000000000000B567 RBX=000000000125CD60 RCX=000000000125CD60 RDX=00000000000050A1 RSI=000000000123F1C0 <<<<<< RDI=0000000100258308 RSP=000000000102F070 RBP=000000000102F0B0 RIP=000000010002D80F R8=0000000100161BA0 R9=00000000008E06A0 R10=0000000000000002 R11=0000000000000206 R12=00000000012607C0 R13=0000000100161BA0 R14=0000000100258300 R15=0000000100257A18

現(xiàn)在我們掃描該基址000000000123F1C0,您應(yīng)該找到一個(gè)靜態(tài)地址,但在實(shí)際游戲中,您將繼續(xù)前進(jìn),直到找到靜態(tài)基址。

以該靜態(tài)地址為基址,我的指針將如``[[[["Tutorial-x86_64.exe"+XXXXXX]+10]+18]+0]+18`所示。

指針掃描可以通過首先找到所需值的地址,保存生成的指針映射,重新啟動(dòng)游戲,再次搜索地址,保存另一個(gè)指針映射,然后比較兩者來快速解決此問題。

找到指針后,將其凍結(jié)在 5000,然后單擊更改指針按鈕。如果您找到了正確的底座,則下一步按鈕應(yīng)在大約2秒后啟用。因此,單擊下一步按鈕轉(zhuǎn)到下一步。

第九步:共享代碼

當(dāng)您開始步驟 9 時(shí),您應(yīng)該會(huì)看到表單如下所示。

因此,就像幫助文本所說的那樣,解決方案遠(yuǎn)遠(yuǎn)不止一種。

首先,我們需要找到其中一個(gè)地址并將其添加到表中。

如果您在查找地址時(shí)遇到問題,請(qǐng)記住嘗試不同的值類型,并且不要忘記開始新的掃描。

然后,就像在步驟7中一樣,我們想要查看訪問地址的內(nèi)容,以找到寫入?yún)⑴c者運(yùn)行狀況的函數(shù)。

如果您想嘗試其他方式,請(qǐng)繼續(xù)保存密碼,這是本教程的最后一步。

因此,在這里,最好了解我們實(shí)際上在尋找什么來區(qū)分盟友和戰(zhàn)斗人員。

當(dāng)編寫游戲或引擎時(shí),演員和玩家可能會(huì)這樣編寫。

Actor, base for all actors class Actor(object){string Name = 'Actor';Coord Coords = new Coord(0, 0, 0);float Health = 100.0;... }Player class Player(Actor){ Player inherits form Actorstring Name = 'Player';int Team = 1;... }

團(tuán)隊(duì)本身可以是一個(gè)結(jié)構(gòu),比如說,如果它被聲明為一個(gè)對(duì)象類,比如Coords變量,我們希望尋找一個(gè)指向參與者團(tuán)隊(duì)結(jié)構(gòu)的指針。

因此,我們可以做到這一點(diǎn)的一種方法是在玩家結(jié)構(gòu)中找到團(tuán)隊(duì)ID或團(tuán)隊(duì)結(jié)構(gòu)。

在球員結(jié)構(gòu)中查找球隊(duì)ID

找到減少生命值的功能后。右鍵單擊反匯編器視圖窗體中的指令,然后選擇找出此指令訪問的地址。

然后單擊所有 4 個(gè)值的攻擊按鈕。調(diào)試器列表中應(yīng)具有所有 4 個(gè)地址。

因此,請(qǐng)繼續(xù)將它們添加到地址列表中。

然后,讓我們打開剖析數(shù)據(jù)結(jié)構(gòu)表單。

你會(huì)得到一些彈出窗口,在想到它們之后,你應(yīng)該看到這樣的表單。請(qǐng)注意,我必須擴(kuò)展窗體的寬度才能移動(dòng)列。

現(xiàn)在在我的偏移量上,0x10被猜測(cè)為一個(gè)指針,在64位進(jìn)程中寬度為8字節(jié)。我看到0x10的指針的值看起來真的不像指針。

因此,我必須將其切換到4字節(jié),并添加一個(gè)新的元素集,其偏移量為具有4字節(jié)值類型的0x14。這通常是它的工作方式。

所以在這里我們可以看到團(tuán)隊(duì)變量在結(jié)構(gòu)的偏移0x14。

現(xiàn)在我們需要向腳本添加一些注入代碼,然后添加一些代碼來檢查結(jié)構(gòu)的團(tuán)隊(duì)變量,以確定哪些參與者是盟友,哪些是戰(zhàn)斗員。

所以我們想要一些這樣的。

因此,啟用此腳本后,當(dāng)游戲?qū)懭胙輪T健康時(shí),以下是跳轉(zhuǎn)到鉤子代碼后將發(fā)生的事情:

  • 1.保存(PUSH)RFLAGS寄存器,不是完全需要,但在比較時(shí)仍然是一個(gè)好習(xí)慣。
  • 2.檢查演員是否在團(tuán)隊(duì) 1 中。如果 actor 在團(tuán)隊(duì) 1 中,則我們以浮點(diǎn)格式將新值設(shè)置為 5000。
  • 3.檢查演員是否在團(tuán)隊(duì) 2 中。如果 actor 在團(tuán)隊(duì) 2 中,則我們將新值設(shè)置為 0,采用十六進(jìn)制格式。(浮點(diǎn)數(shù) 0 == 整型 0 == 十六進(jìn)制 0)
  • 4.恢復(fù)(POP)RFLAGS寄存器,如果寄存器是PUSHed的,這是完全需要的。

啟用此腳本后,單擊重新啟動(dòng)游戲并自動(dòng)播放按鈕,然后您應(yīng)該看到表單更改并如下所示。

因此,單擊下一步按鈕以完成本教程。然后,您應(yīng)該會(huì)看到一個(gè)表單,告訴您已完成本教程。

在寄存器中發(fā)現(xiàn)差異

找到減少生命值的功能后。

右鍵單擊反匯編器視圖窗體中的指令,然后選擇找出此指令訪問的地址。

然后單擊所有 4 個(gè)值的攻擊按鈕。

調(diào)試器列表中應(yīng)具有所有 4 個(gè)地址。

現(xiàn)在讓我們看看登記冊(cè),看看我們是否能找到盟友和戰(zhàn)斗人員的差異。

單獨(dú)選擇每個(gè)地址,然后按 Ctrl+R。

排列表單以使其更易于比較。

因此,在這里我們可以看到戰(zhàn)斗人員的RSI為1。

所以像這樣的腳本應(yīng)該可以工作。

因此,啟用此腳本后,當(dāng)游戲?qū)懭胙輪T健康時(shí),以下是跳轉(zhuǎn)到鉤子代碼后將發(fā)生的事情:

  • 1.保存(PUSH)RFLAGS寄存器,不是完全需要,但在比較時(shí)仍然是一個(gè)好習(xí)慣。

  • 2.檢查 RSI 寄存器是否為

    • 1,如果 RSI 寄存器為 則我們將新值設(shè)置為十六進(jìn)制格式的 0。(浮點(diǎn)數(shù) 0 == 整型 0 == 十六進(jìn)制 0)
    • 2,如果 RSI 寄存器不是 1,那么我們假設(shè) actor 是盟友,因此我們以浮點(diǎn)格式將新值設(shè)置為 5000。
  • 3.恢復(fù)(POP)RFLAGS寄存器,如果寄存器是PUSHed的,這是完全需要的。

啟用此腳本后,單擊重新啟動(dòng)游戲并自動(dòng)播放按鈕,然后您應(yīng)該看到表單更改并如下所示。

因此,單擊下一步按鈕以完成本教程。

然后,您應(yīng)該會(huì)看到一個(gè)表單,告訴您已完成本教程。

總結(jié)

以上是生活随笔為你收集整理的Cheat Engine CE官方教程 [汉化]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。