david0zan 發表於 2011-2-21 04:01:19

Wii軟改原理解析(五)title/Channel/WAD/NUSD

越後面越難寫了...這篇可能比較雜亂一點,寫不好請多包涵。本來想再潤飾的更好再出...不過我覺得還是太多人不懂cIOS的概念,需要予以加強,所以就先出了。

1.title
在第二篇裡面有稍微提到過,title這邊我們稍微再深入一點介紹

 1.1 title dir
首先,Wii的儲存在上面的資料或程式,基本上都叫做title
包括系統title,頻道名稱,以及存檔三大類.

系統title又分IOS、Boot2、Sysmeun、GC使用的BC、mIOS這些。

基本上每個title,都和IOS一樣,存放在某一個「slot」中
而實際上存放的方式就是在NAND fs上面的特定子目錄底下

/ 00000001系統title
/ 00010001可下載頻道,自製頻道等
/ 00010002Wii的系統內建頻道,如天氣,新聞
/ 00010004遊戲安裝到主機上的頻道(如wiifit)
/ 00010005遊戲的下載內容,如吉他英雄DLC等。
/ 00010008隱藏頻道,有EULA,Region select,還有DVDX也是安裝在此。

以系統標題來說,會放在00000001底下的子目錄中
名稱是000000xx就是所謂的IOS,xx的值為十六進位值,從00 -ff
也就是IOS0 - IOS255,我們也已經曉得是IOS1是boot2 IOS2是sysmenu

所以/ 00000001/0000003c就是IOS60(3c中= 60,可以用XP中的計算器幫你計算)
(另外,還有GC模式使用的00000100/0000101 = BC/MIOS,有機會在討論吧)

而其它的頻道,則是以四個英數文字轉成ASCII的十六進位值命名
例如說,HBC,簡稱最早版本被安裝在/ 00010001/48415858這個目錄下面
48415858就是'HAXX'的十六進位值

所以講到頻道常常都會提到四個字的名,就是講這個(例如JODI、UNEO)
同一個ID只能有一個,如果新安裝的頻道和舊的ID重覆,舊的就會被覆蓋掉。
所以如果自製頻道的時候,特別要注意不可重覆編號

 1.2 title version
每一個title都有兩個位元組的版本號version number
以數字來說就是V0的~v65535,是Wii升級title時的依據
以系統title來說,官方設計是只允許升級,不允許降級或刪除
只有一般的頻道和遊戲存檔是可以自由刪除的

表示的方法,除了前面說的0~65 535以外也,有人把兩個位元分開
像是IOS61 21.29,v5405和意思是一樣的(21×256+29=5405)

順帶一提,任天堂的stub IOS(無作用的IOS)
有一個判斷的方法,就是低位元必定為0
如256(1.0),512(2.0),65 280(255.0)

2.Channel
我們曉得,Wii的一開機按完A,首先看到的就是很多的頻道
這是任天堂設計成類似電視選單的風格,看到圖示就可輕鬆選擇你需要的應用程式
而這些圖示是怎麼來的呢?

 2.1頻道的基本概念
不論什麼頻道,一個頻道至少由兩個主要成份所構成,一是Dol主程序。
而第二個是在系統選單中所播放的動畫文件,一般叫做Banner
一個Banner文件又可以細分成好幾個部份,分別提供給不同的地方顯示使用

總之系統選單在每個位置找到每個頻道的動畫文件,就會將它顯示在畫面上
(而所謂的BannerBomb,顧名思義,也就是利用Banner顯示的漏洞製作出來的特殊的Banner)

其中唯一比較特殊的是光碟頻道
這個頻道這個本身其實並不是一個應用程式,而是系統選單的一部份
插入光碟後,系統選單找到光碟上的Banner加以顯示
而選擇執行後是執行光碟上的應用程序。

 2.2 補充:頻道版(Channel version)和跳轉頻道(Forwader Channel)的差別

很多自製程式,如NeoGamma,CFG Loader等除了可以在HBC底下執行以外,都有所謂的頻道版或跳轉頻道。
(跳轉頻道是我自創的翻譯,因為英文太長,總之大家知道我在說什麼就好)

而它們有什麼區別呢?前面說過,頻道基本上就是Banner+dol
所以所謂頻道版的軟體,就是把自製軟體的Dol加上Banner,包裝成頻道的格式。

而所謂的跳轉頻道,並不把自製軟件直接包裝在頻道中。
跳轉頻道中的Dol,會再去執行SD上的某個(或某些)特定目錄下的Dol

所以有時候偶爾會在網絡上看到跳轉頻道只有一Dol
你要使用就必需自己包裝成頻道
(還有一種所謂的Hybrid Channel,算是二合一
會優先執行SD上的程式,如果沒有才執行Channel中包含的版本)

所以我們可以整理出它們不同的一些特性:

a. 因為頻道版包含自製程序本身,而跳轉頻道只包含跳轉程序
   所以頻道版的通常會比較大(還要看Banner的大小)
   會稍微多耗一點主機的Flash空間。
   (不過,看Wad文件的大小是不准的,後面講Wad的地方會解釋)

b.頻道版因為直接內含自製程序,所以可以脫離SD,也可以執行
    (注意,如果自製程序的配置文件和資料存在於SD上,你還是必須有SD卡才能支持完整功能,也就是CFG、ULGX等程序不可能脫離SD(或者硬盤模擬SD))。而Forwader Channel,因為本身不含自製程序,所以當然要把自製程序放到SD上才可以執行。

c.Forwader Channel因為需要跳轉的關係,啟動速度比頻道版至少會慢上一、二秒頻道版的執行相對來說會比較快。

   d.軟件更新版本的時候,Forwader Channel只需要更新SD上的dol,頻道版需要更新頻道的Wad文件重新安裝頻道。
我個人偏好轉發通道,因為不需要常常更新頻道Wad文件。

3.title安裝/wad
在Wii上面,正常頻道安裝是透過遊戲光盤或網絡下載的Wad文件。

就像電腦上的Zip文件一樣,基本上就是把title包裝成一個文件。
讓使用者可以通過光盤或網絡安裝頻道,IOS,系統選單等等

除了系統升級幫你安裝之外
我們也可以直接用Wad manager來安裝官方的Wad文件(官方Wad不需要漏洞就可以安裝)

舉頻道的Wad文件為例,裡面至少會有以下的文件。

00000000.app 頻道的Banner
00000001.app Dol主程序
00000002.app Nand Decryptor
00010001xxxxxxxx.cert 憑證
00010001xxxxxxxx.tik   解密的ticket
00010001xxxxxxxx.tmd 描述Title性質的文件,其中最重要就是告訴系統這個頻道要用哪個IOS
00010001xxxxxxxx.trailer不明
(00000001.app/00000002.app有時候會交換,判斷方式:Dol正常會比較大)

其中的trailer部分,官方的Wad都會拷貝一份00000000.app(banner)當成trailer
但是實際上它卻沒有任何已知用途,也不會被安裝。

所以前面說看Wad文件大小不見得和佔用NAND的空間一定一樣。
就是因為有的Wad文件trailer有複製的banner,有的卻沒有。
所以有可能使用同樣的banner,Forwader的Wad文件比頻道版還大。
那就是因為Forwader版裡面可能塞了數的MB的Trailer。

(瞭解了Channel Wad的結構,你就可以自己解開Wad文件 抽取Wad文件中的Dol和Banner,在重新包裝就可以了)

而實際上佔掉多少空間,則還是要看Free block的變化(1MB =8 block)
不過Wii的保留了一部份空間專門給系統Title使用
所以就算安裝/刪除IOS,從資料管理中還是看不到空閒塊有什麼大變化的。

 3.1檢查機制

Wii在你要安裝東西的時候會檢查簽章
但是一旦安裝完成後,就幾乎不會有人再去檢查它的正確性了
(Boot2除了和少數特定的title會被檢查以外)

於是,安裝非官方的內容,便成為改機的關鍵
前面提過的Truach Bug,就是允許安裝非官方內容的重要道路
目前只要改機,必定需要打通一條路,使得系統上至少有一個IOS有Trucha bug

並且,只有使用的cIOS(下篇會介紹,就是修改過的非官方IOS)
才有可能不需要特殊步驟,直接降級或刪除系統的title。

 3.2升級機制

Wii的升級的方式有二種,一是光碟,二是網絡,兩者的原理類似,以網路來說,會先連上任天堂的Nus(Nintendo Update Server?)

下載系統更新列表,列出目前所有的系統Title的版本。
Wii的檢查本機上的系統Title版本後,就下載本機上缺少或有必要更新的文件,並加以安裝

而以光碟來說,每個Wii遊戲機的遊戲都有一個更新分割區,裡面會有一些Wad文件
光碟頻道在載入遊戲之前,會先按照條件檢查系統上的Title版本
是否比更新分割區中的舊,如果比較舊或不存在,就會安裝更新分割區中的Wad文件。

有的遊戲可能只放入執行遊戲所必須的Wad文件,而有的遊戲就放入完整的系統更新。

而所謂手動更新,就是自己使用相對應的Wad文件。
直接用wad Manager之類的自製程序來安裝。

如4.3升級就安裝以及IOS80和4.3的SYSMENU,就可以完成升級的步驟。(韓版機禁止安裝)

4.Nus Downloader

由於Wii可以聯網系統更新和購買軟件,所以有一個Server

使用這個程序,可以下載所有官方的內容
(也可以下載要付費的程式
但是由於沒有付費,就沒有解密所需要的ticket,所以無法使用)

有時候網絡上的Wad文件比較難以判斷真偽和安全性
但是你直接用NUSD下載,就沒有安全上的顧慮了。

venuslintw 發表於 2013-8-9 00:35:14

我幫你 呵呵

704bdlf5x 發表於 2013-8-9 00:35:14

ding   支持
頁: [1]
查看完整版本: Wii軟改原理解析(五)title/Channel/WAD/NUSD