Cheat Engine 新手教學:第一次掃描,一步一步來
從官方網站安裝 Cheat Engine,附加到遊戲,用 First Scan 與 Next Scan 找出數值,修改或凍結它,並將成果儲存為 .CT CE 修改表 (Cheat Table)。
Cheat Engine 是一款免費、開源的 Windows 記憶體掃描器與除錯工具。它能讓你查看執行中程式的記憶體內容,找出遊戲存放在裡面的數值(金幣、彈藥、生命值、計時器),並加以修改。這份教學會帶你完整跑一次第一次的流程:從正確的來源安裝、附加到遊戲、找出數值、縮小搜尋結果、修改並凍結數值,最後把成果儲存成 CE 修改表 (Cheat Table)。
開始之前先提醒一下:這裡的所有內容都只適用於單機與離線遊戲。請勿在線上或多人遊戲中使用 Cheat Engine,這會影響其他玩家,也可能讓你的帳號被封鎖。修改任何東西之前請先備份存檔,因為被改過的數值可能會被寫進存檔裡並一直留著。
從官方網站取得 Cheat Engine
請只從官方網站 cheatengine.org 下載 Cheat Engine。Cheat-Engine.net 是獨立的 CE 修改表社群網站,並不是 Cheat Engine 官方網站,也與開發者 Dark Byte 沒有任何關係。我們不提供程式本體下載,對於任何提供「重新封裝」、「免安裝」或「預先設定好」安裝檔的其他網站,請務必提高警覺。
官方的 Windows 安裝程式在安裝過程中,可能會提供第三方的附加軟體。請仔細閱讀安裝程式的每一個畫面,不要自動一路按下一步,並拒絕任何你沒有要求的提供項目。這些附加軟體都是選用的,沒有它們 Cheat Engine 照樣可以安裝並正常運作。
安裝完成後,啟動 Cheat Engine。主視窗有三個你會經常用到的區域,
- 左上角的處理程序按鈕(一個小電腦圖示),用來選擇要處理的程式;
- 右側的掃描面板,在這裡輸入數值並選擇掃描選項;
- 底部的位址清單,存放你決定保留的項目。
先用內建教學練習
Cheat Engine 內附專屬的練習程式。打開 Help 選單並選擇 Cheat Engine tutorial;在 64 位元系統上,這會啟動 Tutorial-x86_64.exe。它是一個有編號步驟的小視窗,每個步驟教一種技巧:精確數值掃描、未知初始值、浮點數、找出修改數值的程式碼、指標、程式碼注入以及多層指標。每個步驟只有在你完成任務後才會解鎖 Next 按鈕,並會顯示一組密碼,之後可以用來直接跳回該步驟。
教學是犯錯的最佳場所。你在那裡改的任何東西都不會弄壞遊戲或存檔,而且這些步驟與下面的流程直接對應。只要完成前三、四個步驟,你就已經掌握了新手所需的大部分知識。
將 Cheat Engine 附加到遊戲
Cheat Engine 一次只能處理一個處理程序。選擇方式如下,
- 啟動遊戲並讀取存檔,讓你要找的數值確實存在於記憶體中。
- 切換到 Cheat Engine,點擊左上角的電腦圖示(File 選單中也有相同的選項)。
- 在處理程序清單中找到遊戲的執行檔。Applications 分頁只會列出有可見視窗的程式,通常是最快找到的方法。
- 選取它並點擊 Open。遊戲名稱就會顯示在主視窗的頂端。
請選遊戲本身,而不是啟動器。許多遊戲會先啟動一個啟動器,再由它啟動真正的執行檔;如果你附加到啟動器,掃描的就是錯誤的記憶體,什麼有用的東西都找不到。如果遊戲是獨佔全螢幕執行,請改成視窗或無邊框模式,這樣就能輕鬆在遊戲與 Cheat Engine 之間切換。
你的第一次掃描
看得到數字時,Exact Value
假設你的角色有 1250 金幣。在掃描面板中,
- 在 Value 欄位輸入
1250。 - Scan Type 保持在 Exact Value。
- Value Type 保持在 4 Bytes,這是預設值,也是遊戲中整數最常見的類型。
- 點擊 First Scan。
左側清單會列出遊戲記憶體中目前存有 1250 的所有位址。會有數千筆結果,這很正常,因為 1250 這個數字出現在很多和你的金幣毫無關係的地方。
看不到數字時,Unknown initial value
有些數值never會以數字顯示,例如血條、體力條、冷卻時間。對這類數值,請將 Scan Type 設為 Unknown initial value 並點擊 First Scan。Cheat Engine 會在不過濾任何內容的情況下對記憶體拍下快照。結果數量會非常龐大,清單也可能暫時不會顯示個別位址。之後再依照數值的變化,用後續的掃描逐步縮小範圍。
對於血條和能量條,Value Type 選 Float 通常比 4 Bytes 更值得先猜,因為遊戲常把生命值、體力和位置存成浮點數。如果你不確定該怎麼選,數值類型指南有詳細說明。
用 Next Scan 縮小結果
現在在遊戲中改變數值,然後再掃描一次。這就是 Cheat Engine 的核心循環:改變、掃描、重複。
- 如果你知道新的數字,例如花掉或賺到一些金幣,就輸入新的數量,並以 Exact Value 點擊 Next Scan。
- 如果一開始是未知數值,就使用相對掃描類型:Increased value、Decreased value、Changed value 或 Unchanged value。受到傷害後,掃描 Decreased value。等一下、不要受傷,再掃描 Unchanged value。補血後,掃描 Increased value。
- Increased value by 和 Decreased value by 等變化版本可以讓你輸入精確的差值,在你知道差值時過濾得更快。
每次 Next Scan 只會檢查前一次掃描後留下的位址,所以清單會很快縮小。通常兩到三輪就能把精確數值搜尋縮小到少數幾個位址。未知數值的搜尋需要更多輪;其中穿插 Unchanged value 掃描是剔除雜訊的省力方法。
幾個小習慣會有幫助,
- 每次掃描之間都要讓數值有變化。在遊戲中沒有任何改變的情況下,對同一個數字連續掃描兩次,幾乎篩不掉什麼。
- 如果結果數量降到零,代表有地方對不上:數值很可能是不同的類型,或是以你沒預期的方式改變。點擊 New Scan 重新開始,並嘗試其他數值類型。
- 畫面上看到的不一定就是實際儲存的內容。遊戲可能顯示 100% 的生命值,實際卻儲存 250.0,或是顯示由另一個數字計算出來的數值。如果精確掃描失敗,就退回使用 Unknown initial value。
將結果加入位址清單
當只剩下幾筆結果時,對結果連按兩下,就能把它加入視窗底部的位址清單。你也可以選取多筆結果,再使用結果清單旁邊的紅色箭頭按鈕一次全部加入。
在位址清單中,對 Description 欄位連按兩下並輸入名稱,例如「Gold」。描述不花任何成本,卻能避免之後搞混,尤其是當你累積了十幾個項目時。
如果有兩、三個位址都會跟著你的金幣變動,通常其中一個是顯示用的副本,另一個才是真正的數值。把它們全部加入,然後在下一步測試哪一個真正有用。
修改與凍結數值
要修改數值,請在位址清單的 Value 欄位對數字連按兩下,輸入新數值並確認。然後回到遊戲查看。畫面通常要等到數值再次變動後才會更新,例如在你購買或撿起東西之後。
如果遊戲馬上又把它改回來,你很可能改到的是顯示用的副本,而不是真正的數值。請試試其他候選位址。
要凍結數值,請勾選項目左側的 Active 方塊。Cheat Engine 就會不斷把儲存的值寫回該位址,讓遊戲無法長時間把它降低。凍結對生命值或計時器之類的東西很好用,但手法比較粗暴:遊戲仍然執行它自己的程式碼,只是它的修改會被直接覆蓋。有些遊戲對凍結的數值反應不佳,例如當腳本預期計時器會歸零時。取消勾選 Active 即可解除凍結。
請以小幅、合理的幅度修改數值。把金幣設成 999999999 可能會讓計數器溢位、弄壞商店,或是永久留在你的存檔中。合理的數字比較不容易造成問題。
將成果儲存成 CE 修改表
位址清單中的所有內容都可以儲存成 CE 修改表 (Cheat Table):打開 File 選單,選擇 Save(或 Save As)並取個名稱。檔案的副檔名會是 .CT。下次從 File 選單載入它,再次附加到遊戲,你的項目就回來了。
這裡有一個重要的限制。像你剛找到的這種單純位址,通常只在遊戲的這一次執行期間有效。重新啟動後,遊戲往往會把數值存到別的地方,儲存的項目就會顯示錯誤的數字或 ??。解決方法是找出通往該數值的穩定路徑,這正是指標與程式碼注入腳本的用途。指標掃描指南介紹了其中的第一種。
使用他人製作的 CE 修改表
你不需要自己製作每一份 CE 修改表。許多玩家會分享已經設定好項目的成品,通常還包含重新啟動後仍然有效的腳本。載入並使用它本身就是一門學問,還有遊戲版本與更新方面的陷阱;如何使用 CE 修改表的指南會一步一步說明。在啟用共享修改表中的任何東西之前,請先看看它包含什麼,就像處理任何你下載的檔案一樣。
快速檢查清單
- 只從 cheatengine.org 下載 Cheat Engine,並在安裝程式中拒絕任何附加的額外軟體。
- 用內建教學練習。
- 備份你的存檔。只在單機與離線遊戲中使用 Cheat Engine。
- 附加到遊戲處理程序,而不是啟動器。
- 用 Exact Value 執行 First Scan;如果看不到數字,就用 Unknown initial value。
- 在遊戲中改變數值,然後 Next Scan。重複直到剩下幾筆結果。
- 將它們加入位址清單,透過修改數值來測試,必要時用 Active 方塊凍結。
- 將你的修改表儲存成 .CT 檔,想讓它在重新啟動後仍然有效時,再去學習指標。
留言
尚無留言
成為第一個分享想法的人吧。