PS/2、XBOX遊戲片備份秘技大全
書號:F8070
定價:198 元
賴以立 著
我要線上購買 |
|
本期文摘:PS2 遊戲片備份方法大公開
本文摘錄自旗標 F8070「PS/2、XBOX遊戲片備份秘技
大全」一書
PS2 備份 - 幼稚園班
我們先排除挑片的問題, (挑片問題我們再第四篇再加
以說明) 直接來正視拷貝和破解的問題, 在第一種 MO
DCHIP 和第二種 MODCHIP 時代, 您不能一比一的去拷
貝整張的 PS2 遊戲片, 因為這樣是無法順利進入遊戲
的, 我們要略做一些修改, 首先我們來看看一張 PS2
的遊戲片上面有哪些檔案呢?
大家請注意其中根目錄的兩個檔案 SYSTEM.CNF 及 SL
PM_650.98 這兩個檔案!
話說在前面我們說 PS2 會在啟動時檢查最內圈的 BOO
T CODE, 如果順利才會秀出 PlayStation 2 的 LOGO,
接下來在秀出遊戲片的主畫面之前, PS2 會去比對遊
戲片上的 SYSTEM.CNF, 看看 SYSTEM.CNF 第一行『BO
OT2 =』指向的檔案名稱是什麼和開機碟片讀到的 BOO
T CODE 是否一樣?如果一樣才會將控制權交給那個和
BOOT CODE 比對相同的檔案, 我們用實例來看看。
我們看一般的 PS2 遊戲片上的 SYSTEM.CNF 內容是什
麼?它是純文字檔, 所以用記事本就可以開啟了:
===============================================
BOOT2 = cdrom0:\SLPM_650.98;1
VER = 1.50
VMODE = NTSC
===============================================
各位看到 BOOT2 後的字串就是 BOOT 時要找的東東,
SLPM_650.98 是一個每張遊戲片都不會相同的編號,
這個編號也是檔名, 會印在包裝盒的側面。
或是我們在光碟片背面 (讀取面) 的最內圈也可以看
到同樣的編號。
您必需要把 SYSTEM.CNF 中第一行的
===============================================
BOOT2 = cdrom0:\SLPM_650.98;1
改成
BOOT2 = cdrom0:\SLPS_250.26;1
===============================================
然後把它存檔, 現在我們都準備好了, 現在就請出在
第一篇介紹過的 NERO 來燒錄囉!
在一開始的主視窗中, 您可能會納悶, 怎麼只有給 CD
-ROM 用的功能啊!這樣要怎麼樣製作 DVD-ROM 呢?您
要在左上角有 "CD" 字樣的地方, 把它拉下來, 您就會
看到 "DVD" 字樣了, 選擇 DVD 之後, 世界就變得不一
樣了。
您瞧!DVD 的功能不是都出來了嗎?而且功能和原先 C
D-ROM 的功能幾乎一樣多, 由於人機界面的一致, 相信
讀者看來一定很親切, 不用花太多時間重新學習, 我們
選擇『DVD-ROM (UDF)』這個項目, 然後按下右上方的
"New" 鍵。
這時您要看一下右下角的地方, 是不是出現了您安裝在
電腦中的燒錄機棧型例如:"PIONEER DVD-RW DVR-103"
字樣 (或 104/105/106), 如果沒有, 表示 Nero 沒有
抓到您的 DVD 燒錄機, 那麼就沒有辦法進行燒錄了,
如果您是 DVD+R/RW 的燒錄機也是一樣的, 儘量用買燒
錄機時附贈的 Nero, 它是一定認得您的 DVD+R/RW 燒
錄機的。
好了, 現在在中間偏右邊的檔案視窗中, 所有的檔案都
拖到左方工作區中並且記得把 SLPM_650.98 的檔名改
成「SLPS_250.26」
接著按下最上方功能鍵中的燒錄圖示, 以便進行燒錄,
在出現的 Write DVD 視窗中, 您可以選擇要不要先模
擬 (Simulation) 燒錄, 建議第一次仍要做模擬, 看看
系統夠不夠快, 雖然現在都有燒不死的功能, 不會燒壞
碟片浪費 DVD-R 空片, 不過如果在模擬燒錄中如果發
現系統實在燒得太慢, 您就可以試著先關掉一些正在同
時處理中的工作, 讓電腦燒得更快更順利些嘛!
現在這片 DVD 遊戲片, 就可以在以 DOA2 HARD CORE
開機後, 退出托盤後換上這片備份遊戲片即可進入遊戲
主畫面了!!
只要這款遊戲片沒有進一步的 BOOT CODE 保護, 那麼做
完以上的步驟, 配合任何種類的 MODCHIP 都可以順利玩
您的備份遊戲, 如果還是不行, 那麼當然您就要先去第
四篇閱讀看看, 很有可能您已經碰到了挑片的問題了。
PS2 備份 - 博士班
如果確定沒有挑片問題, SYSTEM.CNF 也照上節的方法修
改了, 卻無法順利在改機之後的 PS2 機器上順利玩這片
遊戲片 => 即 PlayStation 2 Logo 有出現但是之後久
久卻不會進入遊戲主畫面一直在電視上都是黑畫面, 那
麼就有可能遇到有 BOOT CODE 檢查的遊戲片了, 在台
灣最早出現也號稱最難破的就是 SILENT HILL 2 (沉默
之丘 2), 我手上的片子是更新追加版, 和最早的版本
一樣都是有 BOOT CODE 保護, 第三代號稱備份的遊戲
片可以開機的 MODCHIP, 對它也一樣沒輒!
話說當時任何 MODCHIP 配合檔案修改法都沒辦法順利執
行備份遊戲片, 可是後來市面上卻出現了可以執行的台
片。
大家都很高興可以知道人家前輩是怎麼破解的了, 可是
進入檔案總管一看就傻眼了, 根本就看不到 SYSTEM.CN
F 和 SLPM_650.51 這兩個檔 (追加版的 CODE 則改為
SLPM_650.98)??
怎麼可能?想必是用了隱藏檔吧!可是您在檔案總管中
即使您在功能選項中選擇檢視 => 選項。
將隱藏檔案中的『顯示所有檔案(S)』這個選項勾取, 再
回到檔案總管中也仍舊無法看到這兩個 BOOT 用的檔案,
這時我們不能再依賴檔案總管了, 我們用 ISO Buster (
www.IsoBuster.com):
果然就看到被隱藏的 BOOT 檔了(點圖可放大哦!)
現在您看到秘密了嗎?竟然有四個說, 每個前面都被標
上了 MAC 電腦的蘋果標誌, 也就是不但隱藏而且檔案
屬性都改了?^ _^, 這位前輩真的是非常利害, 您知道
他是怎麼對付 BOOT CODE 檢查的嗎?
為了應付 PS2 主機的 BOOT CODE 檢查, 您還是要有正
常的一組 SYSTEM.CNF 和 SLPM_250.26, 因為 BOOT 是
用 D OA2 HARD CORE 啊?!所以 SYSTEM.CNF 的『BOO
T =』 也要指向 SLPM_250.26。
現在 BOOT 是成功了, 但是遊戲主程式會去檢查 BOOT
CODE 是不是被改掉了?所以您必需另外將 SYSTEM.CNF
和 SLPM_250.26 這兩個檔案拷貝後並改名為 SYSTEM.C
NC 和 SLPM_650.51 (原版遊戲中的檔名, 若是追加版則
為 650.98) 而 SYSTEM.CNC 裏面的『BOOT =』 則要改
成指向 SLPM_650.51, 現在遊戲主程式去檢查 SLPM_650
.51 這個檔在不在呢?在, 沒問題, 因為我們拷貝了一
個放在上面嘛>_< 。
那麼檢查 SYSTEM.CNF 中的『BOOT=』字串有沒有被動過
手腳, 也沒有啊, 因為我們也造了一個指向 SLPM_650.5
1 的 SYSTEM 檔!但是等一下, 問題是它不叫 SYSTEM.C
NF 而是叫 SYSTEM.CNC 啊!!
沒關係, 最後一個動作就是把 SLPM_650.51 這個遊戲主
程式中叫出 SYSTEM.CNF 比對的程式讓它改成去叫出 SY
STEM.CNC 這個我們動過手腳的檔案去比對不就好了:
我們祭出 Ultra Edit 或其他的十六進位編輯器, 打開
SLPM_650.51 (追加版則是 SLPM_650.98), 並以 ASCII
的方式找出 s ystem.cnf 字樣 (用大小寫都可以)。
把 system.cnf 改成 system.cnc (其實不就是改一個字
母而已嗎^_^), 改好後存檔, 把這四個檔案連同原先碟
片中 5 個子目錄的資料一起用 Nero 燒成 DVD 就大功
告成了。
--- 本篇完
|
Inside VCL - VCL 架構剖析
書號:F8350
定價:860 元
李維 著
我要線上購買
| |
新書文摘:VCL Framework 的永續儲存【二】
本文摘錄自旗標 F8350「Inside VCL - VCL 架構剖析
」一書
我們上一期(第201期)電子報中曾介紹過「VCL Frame
work 的永續儲存」,本期電子報延續上一期書摘內
容,告訴您永續儲存的發展概況。
永續儲存的發展
不同的軟體技術以及開發工具都開發過不同的永續儲存
機制, 每一種被提出的永續儲存也都有不同的目的和服
務, 當然最具代表的永續儲存功能是由資料庫技術領域
為代表, 不過在本書之中讓我們把討論的重點集中在軟
體技術和開發工具之中, 資料庫方面的永續儲存機制並
不是本書的重點。
在討論Delphi/C++Builder使用的永續儲存之前讀者必
須知道Delphi/C++Builder只是一個開發工具, 因此Del
phi/C++Builder的永續儲存機制在當初被設計時主要是
以開發工具本身的應用為主, 不像其他的永續儲存機制
的設計目的是為了使用在整個作業系統或是遠端呼叫之
中, 因此不同的永續儲存機制使用的廣度和範圍也就不
同。
不過在瞭解Delphi/C++Builder使用永續儲存機制之前
大概瞭解一下其他軟體技術使用的永續儲存機制對於我
們瞭解永續儲存技術有非常大的幫助, 因此在下小面的
小節中將簡單的說明最常使用的永續儲存機制並且加以
比較。在瞭解了不同的永續儲存機制之後再讓我們討論
Delphi/C++Builder使用的永續儲存機制。
COM的永續儲存
Microsoft在數年前推出COM技術時也為COM制定了儲存的
機制, 這就是COM的結構化儲存架構(COM Structured St
orage)。COM結構化儲存架構被制定的起始動機是希望藉
由這個技術來定義Window上應用程式之間共用的資料交
換機制。
Microsoft藉由定義一些標準的COM介面來建立和操作COM
結構化儲存架構而允許不同的應用程式使用標準的方式
來操作資料, 例如Word可以藉由COM結構化儲存架構儲存
檔案, 稍後允許由Delphi/C++Builder撰寫的應用程式來
取出Word儲存的資料。或是Delphi/C++Builder藉由COM
結構化儲存架構儲存物件到記憶體之中, 再由Excel使用
COM結構化儲存架構介面從記憶體中回復物件並且加以使
用。
在COM結構化儲存架構中主要是由所謂的Storage和Strea
m組成的, 我們也可以視Storage為目錄而Stream則可視
為檔案。
COM的儲存架構, 主要是使用Storage和Stream做為組成
元素COM結構化儲存架構定義了許多功能不同的介面, 本
章無法一一的說明, 有興趣的讀者可以自行參考COM相關
的書籍, 就本小節的討論範圍來說, 只需要讓讀者瞭解
下面四個重要的介面即可:
介面 |
說明 |
IStorage |
此介面允許用戶端操作COM結構化儲存架構中Storage的元素。IStorage提供了類似操作檔案目錄的功能。 |
IStream |
提供串列流的功能, 允許用戶端操作COM結構化儲存架構中Stream的元素。IStream提供了類似操作檔案內容的功能。 |
IPersistStream |
用戶端應用程式使用此介面要求COM物件讀取或是儲存Stream之中的資料/物件 |
IPersistStotage |
用戶端應用程式使用此介面要求COM物件讀取或是儲存Storage之中的資料/物件 |
如果我們開啟IStream介面的定義:
=================================================
IStream = interface(ISequentialStream)
['{0000000C-0000-0000-C000-000000000046}']
function Seek(dlibMove: Largeint; dwOrigin: Longint;
out libNewPosition: Largeint): HResult; stdcall;
function SetSize(libNewSize: Largeint): HResult; stdcall;
function CopyTo(stm: IStream; cb: Largeint; out cbRead:
Largeint; out cbWritten: Largeint): HResult; stdcall;
function Commit(grfCommitFlags: Longint): HResult; stdcall;
function Revert: HResult; stdcall;
function LockRegion(libOffset: Largeint; cb: Largeint;
dwLockType: Longint): HResult; stdcall;
function UnlockRegion(libOffset: Largeint; cb: Largeint;
dwLockType: Longint): HResult; stdcall;
function Stat(out statstg: TStatStg; grfStatFlag: Longint):
HResult; stdcall;
function Clone(out stm: IStream): HResult; stdcall;
end;
=================================================
那麼會發現IStream介面中定義了許多我們已經熟悉的方
法和服務, 例如Seek, CopyTo, Commit和Clone等。在稍
後章節介紹VCL Framework的串列流類別時讀者也會看到
許多類似的方法。
請讀者注意觀察COM的結構化儲存架構不也是包含了前面
本章說明的永續儲存服務以及串列流服務嗎?此外COM的
IStream介面中包含的許多方法也和VCL Framework的串列
流類別非常的類似, 可見相同的觀念和技術是都存在於各
種程式語言和Framework之中。
有了IPersistStream/IPersistStorage/IStorage/IStrea
m等介面之後, 用戶端要要使用COM的結構化儲存架構就如
下圖所示, 用戶端應用程式可藉由這些介面來存取和操作
COM結構化儲存中的Storage和Stream元素了。
在VCL Framework中由於已經提供了串列流服務類別, 因
此VCL Framework聰明的結合了本身的串列流類別以及COM
結構化儲存架構之中的IStream介面。這個意思是說VCL F
ramework藉由本身的串列流類別來實作IStream介面, 如
此一來Delphi/C++Builder的程序員就可以直接使用VCL F
ramework的串列流類別, 例如TFileStream或是TMemorySt
ream來提供ISteam介面需要的功能, 而不需要程序員再自
己撰寫額外複雜的程式碼來實作IStream介面。在VCL Fra
mework中提供這個服務的類別便是TStreamAdapter:
==================================================
TStreamAdapter = class(TInterfacedObject, IStream)
private
FStream: TStream;
FOwnership: TStreamOwnership;
public
constructor Create(Stream: TStream; Ownership:
TStreamOwnership = soReference);
==================================================
在物件導向的發展中要到了1995年之後物件導向和開發
人員才逐漸瞭解介面似乎是比類別加繼承在許多方面為
為合理和方便, 因此以介面為中心的設計觀念才慢慢的
成為物件導向的重點, 這也是為什麼新一代的程式語言
幾乎都具備介面機制而且新一代的Framework也都大量的
使用介面機制做為設計的重點。
程式語言/Framework |
永續儲存服務 |
永續儲存實作 |
串列流服務 |
串列流實作 |
COM |
Interface |
Class |
Interface |
Class |
Java永續儲存 |
Interface |
Class |
Interface |
Class |
.NET永續儲存 |
Interface |
Class |
Interface |
Class |
VCL Framework |
Abstract Class/
Class/Interface |
Class |
Abstract Class/
Class/Interface |
Class |
OWL/MFC Framework |
Abstract Class
/Concrete Class |
Class |
Abstract Class
/Concrete Class |
Class |
事實上當初COM建構的永續儲存機制到了現在是被證明是
失敗的, 除了因為COM的儲存儲存過於不必要的複雜之外
, 執行效率不好也是一個致命的缺點。VCL Framework雖
然支援COM的永續儲存, 但是卻鮮少有應用程式使用, 這
個現象也說明了COM永續儲存的命運, 隨著COM技術的消逝
, COM的永續儲存也已經成為明日黃花了。
--- 本篇完
|