教學 › 不用每次放光碟
不用每次放光碟(而且是為了保護它)
那張光碟已經二十一年了。每放進去轉一次,讀取頭就磨一次、 碟片就多一次受熱與受力。而且 2026 年很多機器根本沒有光碟機。 這一課先把「遊戲到底為什麼要找光碟」查清楚 —— 本站反組譯的結果是:它找的是資料,不是在驗你有沒有正版。 知道這件事之後,做法就很單純了。
難度
★☆☆ 幾次點擊
時間
做映像約 10 分鐘
會不會動到遊戲
完全不會
不改任何遊戲檔案,也不改執行檔。
先講界線,因為這一課最容易被誤會
本站不教、也不會教任何規避防盜拷的做法。 這是法律與版權說明第 3 節的紅線。
這一課教的是把你自己那張碟做成映像檔,然後掛起來。
這件事之所以不是規避,是因為 ——
遊戲要找的東西根本不是「防拷特徵」,是一個叫 data 的資料夾。
下一節就是這個結論的證據。
⚠️ 如果你遇到的是真正的光碟保護錯誤訊息(畫面上出現要求放入正確光碟的提示), 這一課幫不上忙,本站也不會幫。那是另一件事。
🛟 動手之前:先完整備份整個遊戲資料夾
把整個遊戲資料夾複製一份到別的地方, 包括裡面存放紀錄的資料夾。不要挑檔案,整包複製最省事也最保險。
「紀錄」是指這些(它們跟遊戲檔混在同一個資料夾裡):
Support\MVP Baseball 2005\—— 遊戲自己建的, 裡面是設定(MVPOptions_Options.sav)與手把設定 (controller.cfg)。剛安裝好時沒有這個資料夾,玩過才出現。- 王朝、老闆模式、名單與玩家檔案的存檔(
*_Franchise.sav、*_Owner Mode.sav、*_Rosters.sav、*_Profile.sav)—— 沒有固定的資料夾名,你或你裝的模組包叫它什麼它就叫什麼。找不到就用這一行找:
dir /s /b "〔你的遊戲資料夾〕\*.sav"
find "〔你的遊戲資料夾〕" -name "*.sav"
上面第一行 Windows、第二行 Mac。 本站每一支工具都會自己備份它要動的那一個檔, 但那只保得住那一個檔 —— 整包備份保的是「你玩到現在的一切」。 完整做法看備份與還原 SOP。
⚡ 只想趕快做完?照這五步
- 先確認你需不需要。把光碟拿出來,開遊戲玩一場完整的比賽。沒有任何抱怨就不用做這一課
- 把你自己那張碟做成映像檔。Windows 用一般的燒錄/映像軟體做
.iso;Mac 用內建的「磁碟工具程式」,或終端機
hdiutil create -srcdevice /dev/disk4 -format UDTO ~/Desktop/mvp_cd2 - 掛起來。Windows 對
.iso按右鍵選「掛接」;Mac 直接按兩下,或
hdiutil attach ~/Desktop/mvp_cd2.iso - 打開掛起來的那台磁碟機,確認最上層有一個
data資料夾。沒有就白掛了 - 開遊戲,玩一場完整的比賽。這一步不能跳
/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, 5 ← 5 = 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 2005 的
Installed From(你當初從哪裡安裝的)的退路 ——
但走不走這一條,由呼叫端推進去的最後一個參數決定。
上面 0x00579C1B 推的是 0,
所以三十二台都找不到就直接回傳失敗,一個位元組的註冊表都沒讀;
推 1 的是另一個呼叫端 0x007517E0,那一條才會去讀。
這是「資料在哪」的查找,不是「你有沒有正版」的驗證。 它沒有讀任何防拷特徵、沒有檢查磁區、沒有比對序號 —— 它只是想讀檔案。
⚠️ 本站的邊界:以上是靜態反組譯的結果。 本站沒有辦法量到「你的機器上實際會不會走到這一段」—— 那取決於你當初怎麼安裝、有沒有選完整安裝。 所以第一步永遠是先試試看不掛載會不會有問題。
👉 你要做的事
這一課的 Windows 部分全是滑鼠操作,沒有指令。
下面出現的 hdiutil 指令是給 Mac 的(而且 Mac 也可以完全用滑鼠做完);
Windows 讀者直接看每一步裡粗體的 Windows 那一段。
頁尾也標了:映像與掛載本站只在 macOS 上驗過,Windows 那一半是未驗的。
很多人的安裝是完整安裝,遊戲根本不會去找光碟。不需要就別做。
把光碟拿出來(或不要掛任何東西),開遊戲玩一場完整的比賽。 沒有任何抱怨 → 你不需要這一課。
映像檔就是一整張碟的複本。做好之後,碟片就可以收起來不再動它。
Windows:用任何一般的燒錄/映像軟體做 .iso 即可
(例如 ImgBurn、CDBurnerXP,或你原本就有的那一套)。
Mac:內建的「磁碟工具程式」就能做 —— 左邊選那張光碟 → 上方檔案 → 新增映像檔 → 來自「(光碟名稱)」的映像檔。 或用終端機:
hdiutil create -srcdevice /dev/disk4 -format UDTO ~/Desktop/mvp_cd2
(/dev/disk4 換成你自己的,用 diskutil list 查。
做出來的是 .cdr,改副檔名成 .iso 就能用。)
那多半代表這張碟上有防拷處理過的磁區,一般工具讀不過去。
本站到此為止。本站不教任何為了讓映像通過防拷檢查而做的特殊處理 —— 那就是法律頁第 3 節說的紅線。
Windows 10 / 11:對 .iso 按右鍵 → 「掛接」。
系統內建,不用裝任何東西。
如果你的映像是 .mdf / .mds / .bin
這類非 .iso 格式,Windows 內建的掛接不吃,
需要一個虛擬光碟機工具(社群當年常用的是 WinCDEmu,
開放原始碼、驅動程式有微軟簽章)。本站不代為連結,請自行搜尋官方頁面下載。
Mac:直接對 .iso 按兩下就掛起來了。或:
hdiutil attach ~/Desktop/mvp_cd2.iso
這是上面那段程式碼真正在找的東西。沒有 data 就白掛了。
打開掛起來的那台磁碟機看一眼,最上層應該要有一個 data 資料夾。
這一步不能跳。本站驗得到「映像掛起來了」,驗不到「遊戲滿意了」。
✅ 成功標準
- 光碟留在盒子裡,遊戲照常開、照常玩完一場
- 掛起來那台的根目錄看得到
data
❌ 出錯處理
| 看到什麼 | 怎麼做 |
|---|---|
| 掛起來了但遊戲還是抱怨 | 先確認那台的根目錄有 data。沒有的話你掛的可能是 CD1 而遊戲要 CD2(或反過來) |
| 出現要求放入正確光碟的訊息 | 那是防拷檢查,不是這一課處理的東西。本站幫不上忙 |
| 做映像時卡住/失敗 | 那張碟可能有防拷磁區。本站到此為止(理由見上面) |
Windows 掛不起來 .mdf |
內建掛接只吃 .iso。需要虛擬光碟機工具 |
📋 回報格式
作業系統:Windows 11 / Windows 10 / macOS ___
不掛載會不會有問題:會 / 不會(不會的話你不需要這一課)
映像做得出來嗎:可以 / 失敗
掛起來那台根目錄有沒有 data:有 / 沒有
遊戲能不能玩完一場:可以 / 不行,訊息是 ___
順帶一提:為什麼這件事值得做
光碟不是永久的。燒錄片的染料層會隨時間與濕熱劣化, 壓製碟的鋁反射層也會氧化 —— 這件事有個名字叫「碟腐」。 二十一年前那張碟現在還讀得出來,不代表明年還讀得出來。
做一份映像,等於把那張碟的內容搬到一個不會自己壞掉的地方。 而且做完之後碟片就可以收起來不再受力受熱 —— 你保護的是原件本身。
本站對「該不該做備份」沒有立場要給誰添麻煩: 這裡講的自始至終是你自己的碟、你自己的備份、你自己的機器。 本站不提供任何遊戲檔案,也不會告訴你去哪裡拿別人的。
📌 重點整理
- 一句話 遊戲要找的不是防拷特徵,是「哪一台光碟機的根目錄底下有
data資料夾」,那是找資料不是驗正版,所以掛你自己那張碟的映像沒有規避任何東西。 - 證據長什麼樣
0x00751700那段從'A'開始列舉磁碟機,GetDriveTypeA比對5(DRIVE_CDROM),最多找 32 台;而呼叫它的那一行0x00579C27推進去的字串就是"data",找到就從\data\database\讀檔。沒有讀防拷特徵、沒有檢查磁區、沒有比對序號。 - 32 台都找不到,這一條路不會去讀註冊表 那支函式裡確實有一條讀註冊表
SOFTWARE\EA SPORTS\MVP Baseball 2005的Installed From(你當初從哪裡安裝的)的退路,但走不走由呼叫端推進去的最後一個參數決定:這一課引的那條路(0x00579C1B)推的是0,找不到就直接回傳失敗;推1的是另一個呼叫端0x007517E0。 - 先確認你需不需要 很多人的安裝是完整安裝,遊戲根本不會去找光碟。第 0 步就是把光碟拿出來玩完一場,沒有任何抱怨就不需要這一課。
- 最容易踩的雷 掛起來那台的根目錄沒有
data就白掛了,也可能是你掛成 CD1 而遊戲要 CD2(或反過來)。另外 Windows 內建的掛接只吃.iso,.mdf/.mds/.bin要虛擬光碟機工具。 - 紅線在哪 畫面出現要求放入正確光碟的訊息,那是防拷檢查,不是這一課處理的東西;映像做不出來、或做出來比原碟小很多,那多半是這張碟有防拷處理過的磁區。兩種本站都到此為止,不教任何為了讓映像通過防拷檢查而做的特殊處理。
- 不會動到遊戲,而且值得做 這一課不改任何遊戲檔案,也不改執行檔。而光碟不是永久的,燒錄片的染料層會隨時間與濕熱劣化、壓製碟(你手上那張原版就是)的鋁反射層會氧化,這件事有個名字叫「碟腐」。做一份映像等於把內容搬到一個不會自己壞掉的地方,碟片也可以收起來不再受力受熱。
- 本站沒驗的 以上對執行檔行為的描述全部來自靜態反組譯,本站量不到「你的機器上實際會不會走到這一段」,那取決於你當初怎麼安裝。而且映像與掛載的步驟本站只在 macOS 上驗過,Windows 那一半是依系統內建功能寫的,標記為未驗,這一段還沒在 Windows 上實測。