Wii软改必要步骤及说明

Softmod步骤以及为什么:wrench:

August 01, 2020 · 32 mins read

突然想起了我的Wii,怎么说也是任天堂第五代主机啊(灌碗鸡汤先),吃了十年灰的Wii重新启用(2010年元旦购买),这才意识到之前更本没有去了解她,以为就只能玩点儿休闲类的体感运动游戏。

爱姬在硬件上支持NGC,四个NGC手柄插孔,两个NGC记忆卡插槽:+1:,简直就是两台游戏机啊。除此以外,还有Wii平台的FC、SFC、N64模拟器。多年以前在电脑SFC模拟器上玩的【天地创造】,仍然记忆犹新,小容量大世界,游戏性很足。

国内电玩店买的主机基本上都是软改好的,不知道老板做了些什么,只记得他教的三部曲,放入光碟、进入软直读频道、按A读碟,其他就什么都不知道了。

网上搜了一堆帖子,把我看得晕头转向。只是告诉你怎么怎么做,但你不知道每个工具的用途、需不需要这么做以及为什么要这么做。

那么N年后,我们的Wii需要做些什么来重获新生呢?下面的步骤是假设是全新未软改的主机,已经软改好的请从[安装IOS58]开始看。

改区韩版升级要变砖

:bangbang:不要升级系统菜单到4.2或4.3:bangbang:

我的就是韩版,包装盒、说明书和主机铭牌上面是韩语,但系统菜单是英语,版本显示的是4.1U,是当初电玩店改的区。

系统菜单4.2真是罄竹难书

  1. 它把boot2升级到boot2v4,但升级程序本身的问题造成升级过程中有几率变砖,也就是说正常升级都可能变砖,不管有没有软改:sob:
  2. 就算成功升级了boot2v4,如果降级系统菜单或降级IOS也会变砖。当然,降级的方式(比如:DARKCORP / cIOSCORP还很危险)已经过时了
  3. 它特别针对改区韩版,让其变砖,这就是有名的Error: 003, Unauthorized device Detected。有些方法能修复,但难度不低

第二点主要是针对某个时间点之后出厂的Wii,这个版本的Wii使用了新主板C/RVL-CPU-20,必须搭配boot2v4和新版IOS,这也就是降级变砖的原因。至于老主板C/RVL-CPU-01加boot2v4降级会不会变砖就不清楚了。

我的主机系统菜单是4.1,boot2版本却是v4,那说明主板至少是C/RVL-CPU-20

注意:如果是从4.2以下版本升级到4.3,不是跳过4.2直接升级到4.3,而是4.2和4.3一起升:joy:

当年电玩店大部分卖的应该都是从这个渠道进来的水货,大家小心了!

软改Softmod

软改的最终目的是让Wii能运行各种自制APP,从硬盘加载Wii游戏只是众多好处之一。我们的目标是——迎娶白富美:smirk:额……安装HBC

HBC能让Wii进入一种等待加载你选择的boot.dol/elf的状态,它总是先搜索SD卡,如果什么都找不到就接着搜索USB。

在我们开始之前有两个警告

  1. 不要做不需要做的步骤!
  2. 不要看一步就马上照着做一步!请从头看到尾,并且理解你在做什么!

准备SD卡

FAT32是兼容性最好的格式,因为几乎所有自制APP都支持。

格式化时候的“分配单元大小”选64KB,这个配置决定读写的最小单元,配得越大读写速度越快空间浪费越多,反之亦然。限于SD卡的读写速度所以分配大点儿。

HackMii

HackMii其实也是个自制APP,它的作用是安装HBC频道和BootMii(后面会说到它的用途)。HackMii需要HBC来运行,HBC需要HackMii来安装,完美陷入死循环:grin:

打破闭环的关键就是利用系统漏洞来运行boot.dol/elf,那么HackMii就有机会运行了。深受广大群众喜爱的是Bannerbomb和Letterbomb,其他大多数漏洞都需要一个正版游戏,通过修改游戏存档文件造成的系统漏洞来运行HackMii。额……这个……不予置评。

HackMii里的操作步骤很简单:

  1. 安装HBC

  2. 选择BootMii…菜单,然后prepare SD card

  3. 安装BootMii。至于BootMii as boot2BootMii as IOS的区别后面会说到,它将会影响到后面一个步骤的选择。

一旦BootMii可以运行后,一定不要忘记备份Wii的机身内存NAND,然后再开始下面的操作。

具体的步骤请根据系统菜单版本参考完整指南 :arrow_upper_right:

HackMii应该是软改技术含量最高的地方,因为它运行在纯净的环境里,一切靠自己。下面先简单介绍下两个公开的漏洞:

首先是著名的FakeSign Bug(Trucha bug / Signing bug / Strncmp bug) 。有了这个Bug,用户可以轻松绕过任天堂的安全检查而安装自制APP。造成这个Bug的原因是任天堂没有正确使用RSA数字签名验证,一是用比较字符串的函数来比较二进制数据:sweat:,还有就是没有检查padding,这个都不能说是Bug,算是一个事故了。这个Bug存在于所有IOS的所有早期版本中,当时HackMii就运行在如此友好的环境下,轻松。还有,这是一个静态破解,在运行前就准备好了数据去绕过数字签名验证。

FakeSign Bug被全线修复后,STM Release漏洞被HackMii选中。这是发布的第一个IOS运行期破解,它基本的原理是什么呢?首先IOS提供了一个事件监听机制,程序告诉IOS它想监听某个事件后又不想监听了,就需要释放一些资源,IOS里释放资源的函数有逻辑瑕疵,少写了一条return;语句:sweat:,给了黑客在地址0注入程序并运行的机会。至于如何绕过数字签名验证,有些IOS系统函数被用来配置一些全局设置,但又没有权限检查,它可以写值到传入的任意地址,那么只需要传入数字签名验证函数内部的一个地址就赢了。

STM Release漏洞被堵住后,HackMii利用的漏洞就没有公开了。系统菜单4.2和4.3的发布是任天堂的两次主动进攻,但效果有限。

如果任天堂看到黑客说“仓库中有堆积如山的IOS漏洞”不知作何感想,不过与其牵扯精力到攻防战,不如投入到下代主机的研发。我不用了,也就没有漏洞了,完美:bowtie:

HackMii安装一 显示无法安装成BootMii as boot2


安装IOS58

系统菜单4.3以下才需要这一步,因为4.3已经包含了这个IOS

IOS是运行在ARM上的操作系统,用来和Wii的硬件以及各种外设打交道,并提供各种系统服务。在Wii里运行的游戏、频道、APP都必须要用某个IOS,也就是说运行在PowerPC上的程序必须依赖IOS

Wii同时存在很多IOS,所有的IOS都存储在Wii的机身内存NAND内,并且每一个IOS都被分配了一个slot,IOS58就是存储在slot 58里的IOS

从硬件上来说,Wii是支持USB2.0(60MB/s)的,但实际上驱动程序仅以USB1.1(1.5MB/s,慢40倍:scream:)的速度使用它们。

cIOS通过打补丁的方式可以激活USB2.0,那么从硬盘读游戏是没有速度问题的,但为什么我们还需要安装IOS58呢?有两个原因,一来HBC不用cIOS,那么在里面运行的APP就没法用USB2.0,包括玩NGC游戏的Nintendont和各种模拟器;二来IOS58是官方支持USB2.0的驱动。

HBC从1.0.8开始支持IOS58,之前的版本显示使用的是IOS61。

有两种方法安装IOS58

  • IOS58 Installer:坚决不用!因为需要连WiFi,为了Wii的安全,物理隔绝网络,怕其他人误操作升级系统了。
  • 手动安装:推荐!用NUS Downloader手动下载,然后进HBC用WAD manager安装。

具体的步骤请参考Enable USB 2.0 :arrow_upper_right:

重装/升级HBC

好了,不管是利用漏洞通过HackMii安装的还是电玩店已经安装好的,现在我们有HBC了。

重装或升级HBC步骤都一样,但这次是直接在HBC里运行HackMii就要方便多了。在HackMii里再次安装HBC,安装画面将显示所使用的IOS

其实有了HBC以后,我们就能运行很多程序了,比如媒体播放器、小游戏、众多模拟器、系统工具等等,这里是APP列表 :arrow_upper_right:

频道能不安就不安,有变砖的风险,从SD卡运行APP更加安全。到目前为止,除了HBC没有发现必须要频道才能运行的。

一些APP既能安装成频道运行,也能直接在HBC里运行,不值得冒变砖的风险就为了少进一层菜单而安装频道。

安装完成后进入HBC,点Home键,右上角将显示HBC的版本和所用IOS。左图是升级前,右图是升级后。

HBC升级前 HBC升级后


BootMii

BootMii最厉害的就是在底层提供防变砖保护,其次是备份和恢复512MB的机身内存NAND。就像系统快照一样,如果后面不小心搞砸了,还有后悔药可以吃。强烈建议至少备份一次,防变砖保护之一!

说到BootMii,无法绕开的就是Wii的启动流程。Wii有两个处理器,启动从ARM(代号Starlet)开始,直到启动PowerPC(代号Broadway)为止。在显示系统菜单之前,Wii进行了一系列启动流程:

  1. boot0:一个ROM中的程序,加载boot1并且计算它的SHA1值,然后与OTP中的值比较,如果不一样,系统将停止启动。很显然,OTP中的值是在出厂前写入的。由于boot0是在ROM中所以无法修改。
  2. boot1:一个NAND中的程序,加载boot2并且校验。虽然这段程序存储在NAND,但由于有boot0的校验,只要一修改,系统就无法启动,也就相当于只读了。
  3. boot2:一个精简版的IOS,从NAND文件系统加载系统菜单需要的IOS,比如系统菜单4.1需要的IOS60。
  4. IOS:启动PowerPC来运行系统菜单。

BootMii的核心是Mini,由黑客从零开始编写,它比IOS更底层一些,也更简化一些,能独立运行并且拥有硬件完全控制权,当然也就不依赖任何IOS漏洞:+1:。因为都要争夺硬件的控制权,MiniIOS不能同时运行。

BootMii as boot2利用boot1中同样的FakeSign Bug直接注入一段程序到boot2中,替换掉原来的ELF Loader程序,这样我们就机会运行Mini了(SD:/bootmii/armboot.bin)。换句话说,BootMii既不是破解版的boot2也不是boot2的替代品,只是在启动boot2之前修了一条岔路,要么Mini,要么IOS

注意它运行的时间点,在第三步的最开始,也就是在加载任何IOS之前,在读取NAND文件系统之前,当然也就在显示系统菜单之前,所以就能在系统启动初始阶段上下其手了:+1:

因为boot2有大小限制,所以用到的一些文件就写入到了SD卡,也就是上面HackMii安装步骤的prepare SD card

美好的事物总是不长久,任天堂知晓了这个漏洞,以2008年的某个时间点为分界线,之后出厂的Wii堵住了boot1能运行修改后的boot2的漏洞。之后的Wii就只能安装成BootMii as IOS了(使用slot 254),失去了底层防变砖的功能。前面说过boot1相当于只读的,所以BootMii as boot2的总是可以BootMii as boot2BootMii as IOS的只能是BootMii as IOS

那么当初在电玩店买Wii的时候,老板不会主动给你写有BootMii文件的SD卡,你当时可能也不知道有这个东西,没有这些文件不管安装方式是BootMii as boot2还是BootMii as IOS,BootMii都无法运行,这也就是我安装IOS58之前无法备份NAND的原因。

下面是BootMii的界面:

BootMii菜单 BackupMii备份NAND中 一些主机信息


Priiloader

如果你是BootMii as boot2的幸运儿,就可以跳过这一步。

那么为什么BootMii as IOS本身不能提供防变砖保护呢?因为就算有了NAND备份,当进入不了系统菜单的时候,从哪儿运行BootMii呢?

如果想利用系统漏洞来运行某个APP,但不要忘了,Bannerbomb和Letterbomb也是破解的系统菜单,其他的漏洞利用也需要从系统菜单的Disc Channel进入游戏。

这个时候就需要Priiloader上场了,Priiloader是个能在系统菜单之前运行的APP。安装的时候需要把HBC升级到1.0.7+,否则就需要打过补丁的IOS36(也就是cIOS236)。详见这里 :arrow_upper_right:

注意它运行的时间点,在启动流程第四步的后期,BootMii as boot2比它低了整整两层,所以只能提供有限的防变砖保护。但因为不够幸运,我们也只能退而求其次了。

看看它的菜单,正是我们需要的:

Priiloader安装界面一 Priiloader安装界面二 Priiloader菜单


安装cIOS

想从硬盘玩游戏,就需要安装cIOS了。如果从零开发一个IOS的难度不低,所以cIOS仅仅打了些补丁到现有的IOS,然后安装到新的slot里,避免覆盖原来的IOS

cIOS以补丁安装器的形式发布,也就是说我们需要自己先下载对应的IOS,虽然Wii可以在线下载但我们物理隔绝了网络。下面是常用的cIOS

  • cIOS236(基于IOS36),安装器是IOS236_Installer_v6,把任天堂修复的FakeSign Bug又恢复回来,老版本的Installer把补丁直接打在了slot36,新版本的才分开安装到了slot236以保持原生IOS的干净。已过时

  • Waninkoko的cIOS249(基于IOS56)和cIOS250(基于IOS57),安装器是d2x-cIOS-Installer-Wii_v3.1(从安装包的meta.xml可以查看到版本),最新版的D2X已经有非常高的游戏兼容性了,而且也不需要cIOS236了,详见这里 :arrow_upper_right:必安

  • Hermes的cIOS202、cIOS222、cIOS223、cIOS224,分别基于哪个IOS要看安装器的版本。大概是IOS37、IOS38、IOS57和IOS60这几个,基本过时

先只安装cIOS249和cIOS250就够了,不建议做cIOS补全(老兄,这个不是收集卡牌游戏),操作越多,错误机会越大。除非确实不兼容你想玩的游戏,不过这个游戏也许永远也玩不到。

其实你可以安装到200+的任意slot,但如果不用约定俗成的slot的话,Game Loader里面的菜单可能就没有你自己选的slot啰:joy:

这步不要单手操作!因为按十字键的下键的时候非常容易误触A!推荐一个姿势,左手在电池盖附近捏住侧面,小心的端着,右手悬空操作,在点A之前检查三遍:joy:

d2x安装最后一步 d2x安装成功


下图是在Configurable USB Loader里查看到的已安装cIOS信息:左图是升级前,右图是升级后。

当初电玩店安装的 安装最新d2x后


参考

排名不分先后:

  1. WiiBrew :arrow_upper_right:
  2. Complete Softmod Guide :arrow_upper_right:
  3. bootmii.org :arrow_upper_right:
  4. hackmii.com :arrow_upper_right:

今天八一建军节:medal_military::1st_place_medal:

为什么战旗美如画

英雄的鲜血染红了它

为什么大地春常在

英雄的生命开鲜花

中国人民解放军


姊妹篇

Wii软改-游戏篇

:clock9:上次更新: 2020-08-01