品技

 找回密码
 注册用户
查看: 9219|回复: 39

Wii软改原理解析(四)HBC、bootmii、DVDX

[复制链接] x 0
发表于 2010-8-27 23:04:46 | 显示全部楼层 |阅读模式
前面介绍完了一些基本观念,接下来就要实际进入Wii软改错综复杂的世界.
Team Twiizers(简称TT)

饮水思源,先来讲到Wii软改界中不可不提的一个团体.
TT是曙光公主Twilight Hack的原创者.
同时也是有名的HackMii Installer的作者.
(包含Homebrew Channel, BootMii, DVDX三个自制软件)

1. The Homebrew Channel(HBC) - 软改必装的频道

前一篇介绍了使用各种buffer overflow漏洞,可以执行自制程式
不过每次都要重跑一次漏洞,实在不是很方便。

就算有比较方便的Bannerbomb,也要每次把要执行的程式
放的SD卡的根目录再跑Bannerbomb。

所以,就有了Homebrew Channel的诞生

HBC大大了简化了初期Wii自制软程执行的流程
只要将你写好的程式目录放在SD卡上的apps目录下
程式目录中包含三个固定文件。
icon.png(图片)meta.xml(说明文件)boot.dol(主程序)
(这三个之中boot.dol为必要文件,其它两者可有可无,不影响执行)
HBC就能将SD上的程式找到并列表供使用者选择

(所以,下次拿到只有一个dol的程式,就会用了吧?
改名成boot.dol,并搭配一个icon.png及meta.xml,就可以用了)

HBC,可以说为Homebrew软体做了一个完整的基本示范。
他不但破解了Wii的频道格式,可以使用WiiMote,甚至还有上网自动更新的功能。

HBC目前由HackMii Installer安装。
Hackmii运行后,会扫描机器内全部的IOS。选定合适的IOS

一般来说,Hackmii会倾向用最新、未修改,但不是系 统选单用的IOS。比如IOS58
(因为系 统选单用的IOS,随时会因为系 统升级而成为stub IOS,见第二篇)
以获得系 统最新的支援。

以目前来说,只要有安装IOS58,那么HBC会优先选择IOS58做为HBC使用的IOS
(IOS58是游戏“你的形状”摄像头使用的IOS,具有原生USB2.0模块)。


HBC颠倒问题:
HBC写得很好,几乎没有什么问题(所以也没什么竞争软件。)
一般新手最常遇到的问题只有一个,就是HBC颠倒的问题或者是进入需要等待1分钟。
没接触过Wii软改的人,一开始可能会以为是HBC或Wii软改的bug。

事实上,这并不是bug,而是TT故意这样写的。
由于TT不希望大家更动Wii的IOS(理由之后讲IOS再说明)
所以如果他侦测到HBC是用修改过的IOS执行,就会颠倒。

第二,进入1分钟等待是因为使用了wad安装器方式安装了HBC,或者你修改了HBC。TT为了保护HBC完整性,就做了必须用Hackmii安装的方式。

解法有二一是看HBC使用哪一个IOS,并还原成官方版
另一个方法就是再次运行Hackmii,那么安装程序就会选择启动的IOS来启动HBC
(最新Hackmii_0.8只需要安装官方IOS58,然后Hackmii卸载HBC在安装就可以解决)

基本上,综合前述我说的,只要安装官方版本的IOS58


再重新安装HBC,就可以保证HBC一定是用官方版的IOS58
那么,就一定不会出现颠倒的问题了。

2. BootMii - 救砖的终极利器

这边先来复习一下第二篇中,Wii的正常开机流程

boot0 ---> boot1 ---> boot2 ---> SYSMENU IOS -> SYSMENU(系 统选单)

其中boot0只读,boot1因为检查码放在boot0,也无法改
boot2以后才是我们可以变更的部份。(NAND 1-7块,可以修改)
BootMii所做的是,修改原本的boot2
让你可以在执行系 统选单之前,有机会做一些别的事


安装了BootMii之后,系 统的开机流程


                                   無SD卡或卡上沒BootMii
boot0 ---> boot1 ---> boot2(hacked) ----------------> 繼續正常開機
                           |
                           --------> BootMii -------> 系統選單,或直接到HBC
                           有SD卡                   跳出

BootMii其实最重要的功能,只有一个,就是备份和还原整个Wii的资料(NAND Flash)
类似像我们在一般电脑上ghost的功能。(一键恢复等等)

由于他是在系 统选单之前就执行,所以无谓系 统出了什么问题
只要boot2没有被盖掉,你都还是可以进入BootMii进行还原系 统的动作。

也由于这个特性,我建议在软改一开始,装好bootmii之后。
马上先做一次NAND Backup,并将keys.bin和nand.bin两个档案收好
另外要注意的是,备份下来的档案只能在原机上使用
你无法还原到另一台Wii上面。
bootmii 会在SD卡建立bootmii文件,内有3个文件,ppcboot.elf、armboot.bin、bootmii.ini
ppcboot.elf就是PowerPc处理器Broadway来运行,这个就是bootmii的界面(类似系 统菜单)
armboot.bin是ARM处理器Starlet来运行(类似系 统IOS)
bootmii.ini是配置文件,里面写了bootmii的运行时视频模式,是否自动跳过,或者引导进入HBC等等。
不过,在后期所谓LU64+(后面会再另外解释)的机器上
由于boot1的trucha bug被修正,所以无法修改boot2。

如果BootMii无法安装在boot2,那救砖的功能也就大为减弱了
(HackMii Installer在安装的时候会提示)
因为装在IOS,就必须能开进HBC之后,才能执行BootMii
这时候因为系 统选单造成的所谓全砖,也就无法修复了

所以使用新机器的人,务必要对自己的每一个动作都多加留意。
注意:Bootmii备份的NAND,不包含boot2,也就是说即使你恢复,boot2也不会被覆盖。

其实,keys.bin丢失了,有NAND.bin也可以恢复(因为NAND.bin最后1Kb的数据就是keys,但是!!!注意,bootmii beta3的备份NAND不包含keys,如果keys在丢失就无法恢复了)
3. DVDX - 自制程式读取DVD片的通路



Wii的设计光驱有保护机制,所以必须是Wii特殊DVD,程序才能存取
(不讨论硬改的问题)所有Iso9660格式的「正常」DVD盘。
如DVD-ROM, DVD+-R, DVD影片等等,正常的IOS是无法读取的

不过由于早期任天堂可能还没有决定要不要支援DVD影片播放。
所以光碟机都内含一个特殊模式,开启之后就可以读取iso9660的DVD。

而DVDX,就类似一个驱动程式,驱动光碟机
让自制程式可以透过它存取一般的DVD片。

除了播放DVD影片以外,很多模拟器可以用它来读取DVD上的ROM档。
DVDX是安装成一个隐藏的频道,所以不会修改主机上的任何IOS

不过自从USB储存被支援后,DVDX的重要性就下降了

而且目前主流的MediaPlayer如WiiMC或MPlayer_CE
则改用了CustomIOS 202去直接读取DVD片,而不再需要DVDX。

(最新的Wiimc使用IOS58,利用HW_AHBPROT技术,已经不需要DVDX就可以读DVD,DVDX已经淘汰,Mplayer使用cIOS202来读取DVD。DVDX流行在早期,cIOS不流行之时)
(目前有一个问题是在所谓D3-2/D4的新版光碟机上,Wii的特殊模式被去除
所以如果用比较新的Wii,只用软改,是完全无法读取一般DVD片的)

(这就是软破解读盘,片头卡的原因,因为软直读利用了这个模式,所以只能实现3X读盘,因为读DVD不需要高速,usbloader没有速度限制)

基本上,有了这些,对一般自制的程式来说,已经很足够了
不过对于一些非正规的用途,受限于官方IOS的能力,仍然会有所限制
(这后面也会再加以解释)

顺带一提的是,TT坚守反盗版的立场
所谓Backup/ISO loader这类有可能牵涉盗版的东西
尽管他们绝对有能力办到,也是绝对不碰的。

而所谓的Custom IOS,几乎可以说都是这类软体才会用到
而且修改系 统原本的IOS对他们来说,不但危险,也是没必要的
所以TT抱持着反对cIOS的立场就很容易理解了。

附录: 小常识

1. 注意BootMii的SD卡兼容性

安装过BootMii或执行过prepare SD功能的SD上
会有一个bootmii的目录,这就是BootMii的主程式
其中armboot.bin是BootMii用的IOS,叫做'MINI',只有49kb

其实这对一般人来说,并不是很重要
由于它极其精简的关系,他不支援(也不打算支援)wiimote。
而必须用GC手把或用power/reset键来控制选单
而且SD卡的兼容性也不如一般的IOS
所以软改Wii首先要特别注意的就是,最好选择BootMii可以支援的SD卡。

2. 跳过BootMii
一般照着懒人包做完的新手,可能会注意到一个问题,就是一开机就跑到BootMii去了

但是BootMii很少用到,每次都要按机器觉得很麻烦,怎么办?
这时候只要删除或更名sd卡上bootmii的目录,就不会执行BootMii了

下次要再用,再把它还原即可(可以用HackMii Installer中prepare SD的选项)

或者,可以在bootmii.ini中(建议用ultraedit,不要用notebpad)
将AUTOBOOT=SYSMENU和BOOTDELAY=0两行前面的#拿掉
这样开机的时候,就自动进入系 统了。如果要启动bootmii就把0改成5就可以。
如果要使用BootMii,五秒内按下操作键即可

3. 懒人包中的BannerBomb
如果SD卡中没有要放任何的频道,可以把BannerBomb放着不管。
如果有要放频道,在软改后记得把懒人包中的
private\wii\title\aktn\content.bin备份后删除
以免影响正常的频道使用

4. HackMii Installer的删除
HackMii Installer就是根目录的一个boot.elf档
如果日后用不到,就删了它了吧,不会影响机器的使用。

评分

1

查看全部评分

发表于 2010-8-27 23:21:30 | 显示全部楼层
本帖最后由 kenren 于 2010-8-27 23:27 编辑

等到了,继续支持.
回复 支持 反对

使用道具 举报

发表于 2010-8-27 23:36:57 | 显示全部楼层
學習了 樓主真厲害
回复 支持 反对

使用道具 举报

发表于 2010-8-27 23:46:40 | 显示全部楼层
繼續支持
part 4
回复 支持 反对

使用道具 举报

发表于 2010-8-28 00:05:26 | 显示全部楼层
非常喜欢星星的技术贴{哈哈真好}
回复 支持 反对

使用道具 举报

发表于 2010-8-28 01:31:41 | 显示全部楼层
支持 技术贴...
回复 支持 反对

使用道具 举报

发表于 2010-8-28 03:03:02 | 显示全部楼层
这算不算沙发?…
回复 支持 反对

使用道具 举报

发表于 2010-8-28 04:52:38 | 显示全部楼层
支持星星~首页留名
回复 支持 反对

使用道具 举报

发表于 2010-8-28 05:23:30 | 显示全部楼层
这个系列太好了,明白了很多原理。期待楼主继续。
回复 支持 反对

使用道具 举报

发表于 2010-8-28 08:26:40 | 显示全部楼层
學習了 支持樓主
回复 支持 反对

使用道具 举报

发表于 2010-9-5 10:55:38 | 显示全部楼层
这一篇偏应用了,还是前几篇那样多深入剖析原理的好
回复 支持 反对

使用道具 举报

发表于 2010-9-5 11:20:29 | 显示全部楼层
学习了.....呵呵原来boot2前面还有2个。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2010-9-6 15:22:12 | 显示全部楼层
我知道原理,不过还是需要教程来作为引导
回复 支持 反对

使用道具 举报

发表于 2010-9-6 15:49:57 | 显示全部楼层
不错,写的很具体很生动
回复 支持 反对

使用道具 举报

发表于 2010-9-6 17:14:30 | 显示全部楼层
很好,继续爬贴
回复 支持 反对

使用道具 举报

发表于 2010-9-6 20:30:47 | 显示全部楼层
继续来听课 呵呵 支持星星
回复 支持 反对

使用道具 举报

发表于 2010-9-8 23:38:00 | 显示全部楼层
继续来听课  支持星星
回复 支持 反对

使用道具 举报

发表于 2010-9-24 08:31:04 | 显示全部楼层
支持.  Thanks  ....
回复 支持 反对

使用道具 举报

发表于 2010-9-24 14:11:37 | 显示全部楼层
很高深,不过星星大人的帖子还是要顶的
回复 支持 反对

使用道具 举报

发表于 2010-10-8 11:14:38 | 显示全部楼层
非常感谢你的分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册用户

本版积分规则

小黑屋|手机版|Archiver|品技 |网站地图

GMT+8, 2026-8-18 21:11 , Processed in 0.129138 second(s), 34 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表