跳至主要內容

Cheat Engine 新手教學:第一次掃描,一步一步來

Cheat-Engine.net 作者:Cheat-Engine.net 閱讀需 10 分鐘 33 次瀏覽

從官方網站安裝 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 一次只能處理一個處理程序。選擇方式如下,

  1. 啟動遊戲並讀取存檔,讓你要找的數值確實存在於記憶體中。
  2. 切換到 Cheat Engine,點擊左上角的電腦圖示(File 選單中也有相同的選項)。
  3. 在處理程序清單中找到遊戲的執行檔。Applications 分頁只會列出有可見視窗的程式,通常是最快找到的方法。
  4. 選取它並點擊 Open。遊戲名稱就會顯示在主視窗的頂端。

請選遊戲本身,而不是啟動器。許多遊戲會先啟動一個啟動器,再由它啟動真正的執行檔;如果你附加到啟動器,掃描的就是錯誤的記憶體,什麼有用的東西都找不到。如果遊戲是獨佔全螢幕執行,請改成視窗或無邊框模式,這樣就能輕鬆在遊戲與 Cheat Engine 之間切換。

你的第一次掃描

看得到數字時,Exact Value

假設你的角色有 1250 金幣。在掃描面板中,

  1. 在 Value 欄位輸入 1250。
  2. Scan Type 保持在 Exact Value。
  3. Value Type 保持在 4 Bytes,這是預設值,也是遊戲中整數最常見的類型。
  4. 點擊 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 修改表的指南會一步一步說明。在啟用共享修改表中的任何東西之前,請先看看它包含什麼,就像處理任何你下載的檔案一樣。

快速檢查清單

  1. 只從 cheatengine.org 下載 Cheat Engine,並在安裝程式中拒絕任何附加的額外軟體。
  2. 用內建教學練習。
  3. 備份你的存檔。只在單機與離線遊戲中使用 Cheat Engine。
  4. 附加到遊戲處理程序,而不是啟動器。
  5. 用 Exact Value 執行 First Scan;如果看不到數字,就用 Unknown initial value。
  6. 在遊戲中改變數值,然後 Next Scan。重複直到剩下幾筆結果。
  7. 將它們加入位址清單,透過修改數值來測試,必要時用 Active 方塊凍結。
  8. 將你的修改表儲存成 .CT 檔,想讓它在重新啟動後仍然有效時,再去學習指標。

留言

0
回覆給

不會公開顯示。

留言需經版主審核後才會顯示。

尚無留言

成為第一個分享想法的人吧。