教學 › 不用每次放光碟

不用每次放光碟(而且是為了保護它)

那張光碟已經二十一年了。每放進去轉一次,讀取頭就磨一次、 碟片就多一次受熱與受力。而且 2026 年很多機器根本沒有光碟機。 這一課先把「遊戲到底為什麼要找光碟」查清楚 —— 本站反組譯的結果是:它找的是資料,不是在驗你有沒有正版。 知道這件事之後,做法就很單純了。

難度

★☆☆ 幾次點擊

時間

做映像約 10 分鐘

會不會動到遊戲

完全不會
不改任何遊戲檔案,也不改執行檔。

先講界線,因為這一課最容易被誤會

本站不教、也不會教任何規避防盜拷的做法。 這是法律與版權說明第 3 節的紅線。

這一課教的是把你自己那張碟做成映像檔,然後掛起來。 這件事之所以不是規避,是因為 —— 遊戲要找的東西根本不是「防拷特徵」,是一個叫 data 的資料夾。 下一節就是這個結論的證據。

⚠️ 如果你遇到的是真正的光碟保護錯誤訊息(畫面上出現要求放入正確光碟的提示), 這一課幫不上忙,本站也不會幫。那是另一件事。

🛟 動手之前:先完整備份整個遊戲資料夾

把整個遊戲資料夾複製一份到別的地方包括裡面存放紀錄的資料夾。不要挑檔案,整包複製最省事也最保險。

「紀錄」是指這些(它們跟遊戲檔混在同一個資料夾裡):

dir /s /b "〔你的遊戲資料夾〕\*.sav"
find "〔你的遊戲資料夾〕" -name "*.sav"

上面第一行 Windows、第二行 Mac。 本站每一支工具都會自己備份它要動的那一個檔, 但那只保得住那一個檔 —— 整包備份保的是「你玩到現在的一切」。 完整做法看備份與還原 SOP

⚡ 只想趕快做完?照這五步

  1. 先確認你需不需要。把光碟拿出來,開遊戲玩一場完整的比賽。沒有任何抱怨就不用做這一課
  2. 把你自己那張碟做成映像檔。Windows 用一般的燒錄/映像軟體做 .iso;Mac 用內建的「磁碟工具程式」,或終端機
    hdiutil create -srcdevice /dev/disk4 -format UDTO ~/Desktop/mvp_cd2
  3. 掛起來。Windows 對 .iso 按右鍵選「掛接」;Mac 直接按兩下,或
    hdiutil attach ~/Desktop/mvp_cd2.iso
  4. 打開掛起來的那台磁碟機,確認最上層有一個 data 資料夾。沒有就白掛了
  5. 開遊戲,玩一場完整的比賽。這一步不能跳

/dev/disk4 換成你自己的,用 diskutil list 查; 做出來的是 .cdr,改副檔名成 .iso 就能用。 想知道遊戲到底在找什麼(本站把那段反組譯出來了),往下讀; 只想複習,跳到📌 重點整理

遊戲為什麼要找光碟:查出來了

執行檔裡有一段列舉磁碟機的程式(0x00751700)。把它反組譯出來:

00751707  mov  ebp, 1
0075170C  mov  byte [esp+0x13], 0x41          ← 從 'A' 開始
00751711  call GetLogicalDrives              ← 有哪些磁碟機
00751731  push "%c:\"                        ← 組成 "A:\" "B:\" …
00751740  call GetDriveTypeA
00751746  cmp  eax, 55 = DRIVE_CDROM
00751749  jne  下一台
00751752  call 0x751630                      ← 檢查這台裡面有沒有它要的東西
00751767  cmp  edi, 0x20                     ← 最多找 32 台

關鍵在呼叫它的那一行

00579C1B  push 0                          ← 最後一個參數
00579C1D  push 0x10c                         ← 收結果的緩衝區大小
00579C26  push ecx                           ← 收結果的緩衝區
00579C27  push "data"                       ← 要找的東西
00579C32  call 0x751700                      ← 上面那支
00579C3A  test al, al
00579C3C  je   失敗
00579C3E  mov  eax, ["\database\"]          ← 找到就從那裡讀

所以它在做什麼

「找一台光碟機,它的根目錄底下有 data 資料夾」, 找到就從 \data\database\ 讀檔。

那支函式裡還有一條讀註冊表 SOFTWARE\EA SPORTS\MVP Baseball 2005Installed From你當初從哪裡安裝的)的退路 —— 但走不走這一條,由呼叫端推進去的最後一個參數決定。 上面 0x00579C1B 推的是 0, 所以三十二台都找不到就直接回傳失敗,一個位元組的註冊表都沒讀; 推 1 的是另一個呼叫端 0x007517E0,那一條才會去讀。

這是「資料在哪」的查找,不是「你有沒有正版」的驗證。 它沒有讀任何防拷特徵、沒有檢查磁區、沒有比對序號 —— 它只是想讀檔案。

⚠️ 本站的邊界:以上是靜態反組譯的結果。 本站沒有辦法量到「你的機器上實際會不會走到這一段」—— 那取決於你當初怎麼安裝、有沒有選完整安裝。 所以第一步永遠是先試試看不掛載會不會有問題

👉 你要做的事

這一課的 Windows 部分全是滑鼠操作,沒有指令。 下面出現的 hdiutil 指令是給 Mac 的(而且 Mac 也可以完全用滑鼠做完); Windows 讀者直接看每一步裡粗體的 Windows 那一段。 頁尾也標了:映像與掛載本站只在 macOS 上驗過,Windows 那一半是未驗的

0
先確認你真的需要做這件事

很多人的安裝是完整安裝,遊戲根本不會去找光碟。不需要就別做。

把光碟拿出來(或不要掛任何東西),開遊戲玩一場完整的比賽。 沒有任何抱怨 → 你不需要這一課。

1
把你自己那張碟做成映像檔

映像檔就是一整張碟的複本。做好之後,碟片就可以收起來不再動它。

Windows:用任何一般的燒錄/映像軟體做 .iso 即可 (例如 ImgBurn、CDBurnerXP,或你原本就有的那一套)。

Mac:內建的「磁碟工具程式」就能做 —— 左邊選那張光碟 → 上方檔案 → 新增映像檔 → 來自「(光碟名稱)」的映像檔。 或用終端機:

hdiutil create -srcdevice /dev/disk4 -format UDTO ~/Desktop/mvp_cd2

/dev/disk4 換成你自己的,用 diskutil list 查。 做出來的是 .cdr,改副檔名成 .iso 就能用。)

做映像失敗、或做出來的比原碟小很多?

那多半代表這張碟上有防拷處理過的磁區,一般工具讀不過去。

本站到此為止。本站不教任何為了讓映像通過防拷檢查而做的特殊處理 —— 那就是法律頁第 3 節說的紅線。

2
把映像掛起來,讓它看起來像一台光碟機

Windows 10 / 11.iso 按右鍵 → 「掛接」。 系統內建,不用裝任何東西。

如果你的映像是 .mdf / .mds / .bin 這類非 .iso 格式,Windows 內建的掛接不吃, 需要一個虛擬光碟機工具(社群當年常用的是 WinCDEmu, 開放原始碼、驅動程式有微軟簽章)。本站不代為連結,請自行搜尋官方頁面下載。

Mac直接對 .iso 按兩下就掛起來了。或:

hdiutil attach ~/Desktop/mvp_cd2.iso
3
確認掛起來的那一台「根目錄下有 data」

這是上面那段程式碼真正在找的東西。沒有 data 就白掛了。

打開掛起來的那台磁碟機看一眼,最上層應該要有一個 data 資料夾。

4
開遊戲,玩一場完整的比賽

這一步不能跳。本站驗得到「映像掛起來了」,驗不到「遊戲滿意了」。

✅ 成功標準

❌ 出錯處理

看到什麼怎麼做
掛起來了但遊戲還是抱怨 先確認那台的根目錄有 data。沒有的話你掛的可能是 CD1 而遊戲要 CD2(或反過來)
出現要求放入正確光碟的訊息 那是防拷檢查,不是這一課處理的東西。本站幫不上忙
做映像時卡住/失敗 那張碟可能有防拷磁區。本站到此為止(理由見上面)
Windows 掛不起來 .mdf 內建掛接只吃 .iso。需要虛擬光碟機工具

📋 回報格式

作業系統:Windows 11 / Windows 10 / macOS ___
不掛載會不會有問題:會 / 不會(不會的話你不需要這一課)
映像做得出來嗎:可以 / 失敗
掛起來那台根目錄有沒有 data:有 / 沒有
遊戲能不能玩完一場:可以 / 不行,訊息是 ___

順帶一提:為什麼這件事值得做

光碟不是永久的。燒錄片的染料層會隨時間與濕熱劣化, 壓製碟的鋁反射層也會氧化 —— 這件事有個名字叫「碟腐」。 二十一年前那張碟現在還讀得出來,不代表明年還讀得出來

做一份映像,等於把那張碟的內容搬到一個不會自己壞掉的地方。 而且做完之後碟片就可以收起來不再受力受熱 —— 你保護的是原件本身。

本站對「該不該做備份」沒有立場要給誰添麻煩: 這裡講的自始至終是你自己的碟、你自己的備份、你自己的機器。 本站不提供任何遊戲檔案,也不會告訴你去哪裡拿別人的。

📌 重點整理