A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 6443|回复: 19

详解bootmii(中文翻译),WII破解的发展趋势

[复制链接]

精华
0
帖子
825
威望
0 点
积分
900 点
种子
30 点
注册时间
2004-10-22
最后登录
2025-3-11
 楼主| 发表于 2008-11-9 21:36  ·  河南 | 显示全部楼层 |阅读模式
注:括号里为小弟的个人发言

bootMii: 新的开始

2008年10月14号,marcan

几天前我张贴了一段称之为BOOTMII的录像,我想现在是时候来回答关于它到底是什么,它干什么用,它能如何帮助你的这些问题了。在你感到厌烦不想看下去之前,至少我要声明BOOTMII是完全基于软件的在录像上看的那个设备只是用来除错的。

  (BOOTWII是软破解,看来我们以后只是需要下个软件就可以了,天大的喜讯)


  首先你要明确的是BOOTMII不是一个单独的应用或破解程序,它是给黑客们用的一个平台。直到现在,我们几乎无法控制用户在WII上运行什么程序。当然我们能运行自己的东西,但最终我们都是系统的用户---我们运行所有东西都是要经过WII的自带官方软件。我们能免升级并试着了解这个现有官方系统,但我们仍旧依靠它。现在的每一个Wii Homebrew 都依赖着官方的IOS,这不是坏事,它提供了许多现有程序我们不用再去编写了。但是这也意味着我们必须要遵守官方的规则

  (bootmii很有野心啊,准备完全抛弃官方软件,自己开放另外一个系统)

  
  现在,关于系统方面已经有了一些破解。当初的PatchMii就是为了解除IOS的限制而开发的---但是它不太实用,而且一次只能应用于一个IOS。 Starfall解决了很多系统菜单方面的烦恼,但它是一个低等级丑陋的破解工具,官方的任何升级都能清除掉它。官方在任何时间都能升级系统,弥补程序上的漏洞。当然,我们并不希望后者的发生,虽然我们已经并且即将找到漏洞,但这仍旧让人心力交瘁,不能赞同。

  (本人翻译能力有限,汉语读起来很别扭。作者的意思是官方升级,骇客破解,官方再升级,骇客再破解,这套模式太折磨人了,没有尽头。所以他准备自制系统,从根本上不用官方的系统软件)



  
  bootmii---让我们称之为BOOTMII操作平台---将要改变上述情况。我们注定要从内部破解,而不是官方系统的使用者,we’re going to turn the tables around (此句不知道如何翻译)。现在我们将要拥有控制权,而且官方的软件必须经过我们才能运行。

  (看出作者的雄心壮志了吧,牛人啊)


  在进行详细描述之前,我必须提及一个细微但是很重要的细节,是关于我们如何决定设计BOOTmii的。当决定控制系统的时候,我们想最小化的改变官方现有的系统。这样做有很多好处,最有利的是把
BOOTMII和现有官方系统分离开,我们能随意在WII上安装或卸载BOOTMII. 这也许会很方便,举例来说,官方从在线游戏上禁止 homebrewers。

  (该段文字涉及编程和破解,我个人不是很懂,翻译不太流畅,希望高手指点)


  现在,我已经说了BOOTMII是一个平台。它的大部分程序仍旧在设计和编写中,不要希望我们对未完成的程序做出详细解释。今天我要谈谈录像***现的部分:bootmii核心

  (看来短期内是不会推出了)



  bootmii核心是相当重要的部分。从这里开始就不翻译了,不是我偷懒,此后作者全是大篇幅的专业术语,我可不敢乱翻译。后面作者详细描述了BOOTMII工作原理和破解方法,大意就是说在WII开机是会首先运行boot程序, boot0,boot1都无法修改(包括已经全砖的机器,由于最基本的文件是只读的,所以不会损坏),但我们可以修改boot2。采用一个修改过的BOOT2文件,让机器开机就读取SD程序。作者对BOOTMII充满信心,认为只有天空才是BOOTMII的极限

  对国内玩家最有利的是文中专门提到了全砖WII,作者认为不管机器的内部升级程序如何损害,只要有BOOTMII就可以照样运行

  
  最后作者保证当程序完成时一定放出,同时希望网友不要去打扰他们.

精华
0
帖子
825
威望
0 点
积分
900 点
种子
30 点
注册时间
2004-10-22
最后登录
2025-3-11
 楼主| 发表于 2008-11-9 21:41  ·  河南 | 显示全部楼层
我相信很多高手早就看过原文,但考虑国内还是小白玩家居多,所以自不量力翻译了一把。

BTW,搞不好这是全国论坛的第一份BOOTMII翻译稿呢,让我们期待这个自制软件中的王者

骑士

幻之怪物猎人= =

精华
1
帖子
2300
威望
2 点
积分
2595 点
种子
5 点
注册时间
2005-5-1
最后登录
2020-10-25
发表于 2008-11-9 21:42  ·  上海 | 显示全部楼层
支持lz的翻译,技术类的文章看起来还是很累的,不管是e还是中

精华
0
帖子
825
威望
0 点
积分
900 点
种子
30 点
注册时间
2004-10-22
最后登录
2025-3-11
 楼主| 发表于 2008-11-9 21:45  ·  河南 | 显示全部楼层
对黑客们肃然起敬了,毫无报酬还这么敬业,相比之下我的翻译工作太轻松了

精华
0
帖子
825
威望
0 点
积分
900 点
种子
30 点
注册时间
2004-10-22
最后登录
2025-3-11
 楼主| 发表于 2008-11-9 21:53  ·  河南 | 显示全部楼层
原文的地址  
http://hackmii.com/2008/10/bootmii-the-beginning/

A9的硬件技术区就是强啊,活跃分子还是很多的,想当年我PS2的HDL就是看帖子搞定的

精华
0
帖子
3872
威望
0 点
积分
4518 点
种子
1222 点
注册时间
2004-8-17
最后登录
2025-3-11
发表于 2008-11-10 08:36  ·  山东 | 显示全部楼层
支持各位达人.....

精华
0
帖子
516
威望
0 点
积分
560 点
种子
11 点
注册时间
2007-3-5
最后登录
2024-10-8
发表于 2008-11-10 10:22  ·  江苏 | 显示全部楼层

转自以下网址
竟然是3月的帖子

http://www.itocp.com/viewthread.php?tid=4474


本文是timbinc的blog的一个翻译,主要是想让大家了解wii的破解过程和wii的加密系统的运作情况,
有些专业术语会在后面做个简短的介绍。

Wii hacked it!
  在bushing展示了首个通过注入执行的homebrew之后,发生了很多事情。这次注入是通过光盘的哈希和验证漏洞来完成的,但是它的发现者segher决定不公布这个漏洞。这个漏洞很容易通过以后的firmware更新来patch掉,并不会造成功能上的任何影响。此外,还有一个漏洞就没那么容易被patch了。因为这个注入是通过游戏的savegame漏洞执行的。当然你可以对游戏代码进行修改,但是我们也可以换个游戏。
  好吧,我已经花了太多时间在high-level上面了,所以还是让我们回到我感兴趣的系统结构上来吧,我们来讲讲bootloader!
  之前我们已经知道了在wii的flash中有一个称为"boot1"的固定代码块作为wii的第一段执行代码。它是"starlet"的执行代码.我们现在还不知道这段代码的加密算法(有传闻是基于LFSR的流芯片并使用AES加密算法),也不知道代码是如何做hash的.但是我们有一个从系统update中得到的称为"BC"的程序.我们不确定BC代码的用途(可能是用来从gc模式返回到wii模式),但是BC确实能够替代boot1的工作.它能够从flash中读取一段数据并进行解码,验证解密部分并跳过.一旦我们对其算法重新编码,实际上我们就得到了一个"boot2".设定一个新的哈西函数对boot2进行加密,那么我们就有了一个种了bug的boot2了,并且能够用它来替换boot1。显然,直接将boot2灌入flash是危险且愚蠢的,因为你得不到任何返回结果,无法判断代码的执行情况。
  那么接下来要做的事情就很清楚了,我们要使用boot2替代boot1在starlet上执行这段代码。我把我那台在360上用过的老旧的FPGA的NAND flash emulator又拿出来使用。我把flash的针脚接在FPGA上,花了好几个小时,让这个升级版的flash能够在wii上正常工作。现在我可以从这个替换的FPGA上启动了。由于这个NAND flash emulator有512MRAM,我无法将flash的内容输出到ram,所以我立刻改写了代码并用它替换了flashrom中的代码。我使用的这个NAND模拟器的FPGA里有一个内嵌的Powerpc核心,我加了一个以太网MAC,并使用lwip连接到一个TCPserver来标示flash页的位置。这样能使得开发的工作容易些,并且最重要的,我现在能够在pc上看到并修改NAND的内容。
  bushing已经准备了一个修改过的boot2,非常幸运,它可以在starlet上运行。那么,接下来要做的第一件事当然就是"hello world",但如何输出结果?就像我曾经在gc模式下做的一样,我想使用一个软件UART,但我找不到可用的GPIO。最后我使用了sensorbar的LED来输出结果,就像你们图片中看到的一样。

之后,我使用NAND接口来运行一个非标准命令来得到指定地址的内容,然后我在FPGA上添加了代码将地址内容输出到FPGA的UART上。
  经过几个小时,我终于dump出了boot1,并且还dump出了一段新的代码。这段代码用来对NANDflash的头进行解密送到memory并作了一个SHA1加密。通过比较hash运算前后的数据,表明这段代码就是个bootrom!bingo,我决定称它做boot0。
我们来看看wii启动前的整个加密过程做了些什么:
1.wii首先执行boot0代码,这段代码可能是存放在hollywood的掩模rom中
2.boot0从flash中载入首个0x2F页("既boot1"),使用固定的AES密匙解码,然后作hash运算和预订值进行对比
3.如果hash运算得到的结果全为0,则跳过检查(猜测可能供某些开发机使用)
4.boot1查找flash中的一个确定的头部位置,从那里得到boot2的位置信息
5.在那个地方,需要对boot2做一次验证,然后通过hash运算解出boot2
6.从flash中加载boot2的payload,解码并做hash验证
7.boot2加载firmware,然后是系统启动之类的事情,后面的我不是很感兴趣了....
..........
   后面就是timbinc对wii的加密系统的评价,他提到使用bootrom是一个很好的思路。作者提到在gc上由于硬件的限制,使得加密运算不可能做的很复杂,往往都是使用一个固定的密钥做流加密,不能hash,是个很大的漏洞。bootrom提供足够的空间可以使用更加复杂的算法,甚至还能提供硬件级的SHA-1,AES的加密计算,这样使得整个加密系统比以前进步很多。后面作者还提到这个系统的一些缺陷以及自己对这个加密系统的一些改动想法,然后是对整个破解团队的感谢

具体内容看这里http://debugmo.de/?p=59#more-59
注:
homebrew:自制软件,指未经授权玩家自行编写的软件
high-level:指高层系统。后面tim写的是对wii的底层加密系统的破解,相较而言,对TPsavegame的bug注入就是在应用层的高层破解。
hash算法:把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。比较著名的hash算法有MD5.MD2等,下文提到的SAH1也是一种
starlet:一个在图形处理器中没有公开过的芯片(undocumented processor),这个芯片被他们叫"Starlet"(因为没有官方名称),芯片的作用是控制Wii的RAM、安全和加密并控制几乎所有周边。
LFSR:线性反馈移位寄存器。其反馈函数是寄存器中某些位的简单异或。一个n位的LFSR能够在重复之前产生2^n-1位长的伪随机序列,一般用来做伪随机数产生。
UART:通用异步收发器。它是一种串行接口,许多微处理器和微控制器中都包含这种外设接口。它提供了一种简单的途径,使两个器件无需共享同一个时钟信号就能进行通信。串口信号只需两根信号线(Rx和Tx)即可实现,而且只要两端器件都采用同样的位格式和波特率,那么它们无需其它任何对方的信息就可以成功传输数据。
LWIP:LWIP是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP的含义是Light Weight(轻型)IP协议,相对于uip。LwIP可以移植到操作系统上,也可以在无操作系统的情况下独立运行。LwIP TCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般它只需要几十K的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端嵌入式系统中使用。
aim

精华
2
帖子
5433
威望
7 点
积分
6041 点
种子
5 点
注册时间
2005-7-12
最后登录
2020-11-17
发表于 2008-11-10 12:14  ·  广东 | 显示全部楼层
取代官方的系统菜单确实是最王道的方法了,bootmii 能够完全实现的话毫无疑问能成为Wii上最有价值的homebrew。
只是我一直有个非常大的疑问,修改boot2是不是一定要编程器……

征服者

流放者(禁止发言)

精华
5
帖子
4555
威望
7 点
积分
5762 点
种子
5 点
注册时间
2005-5-14
最后登录
2019-5-14
发表于 2008-11-10 12:37  ·  广东 | 显示全部楼层
下面是引用aim于2008-11-10 12:14发表的:
取代官方的系统菜单确实是最王道的方法了,bootmii 能够完全实现的话毫无疑问能成为Wii上最有价值的homebrew。
只是我一直有个非常大的疑问,修改boot2是不是一定要编程器……
能取代官方的系统就不能称homebrew了,独立的OS能启动看来不只是单凭软app就能实现的,必须要有一个外接的载体去引导,对应操作的OS所需的操作驱动都要时间去研究,bootmii的理念在NGC中已经出现过,Wii再重现也不是没可能的。。。。。。

精华
0
帖子
516
威望
0 点
积分
560 点
种子
11 点
注册时间
2007-3-5
最后登录
2024-10-8
发表于 2008-11-10 13:33  ·  江苏 | 显示全部楼层
[quote]下面是引用aim于2008-11-10 12:14发表的:
取代官方的系统菜单确实是最王道的方法了,bootmii 能够完全实现的话毫无疑问能成为Wii上最有价值的homebrew。
只是我一直有个非常大的疑问,修改boot2是不是一定要编程器……


当然需要编程器了
最便宜的也就是 infectus2那个***吧
本来修全砖也指望他的,后来发现了后门进入修复模式,

去年就可以复制nandflash了,但还无法修改


其他的编程器都很贵呢 ,infectus2最便宜的时候卖400,现在淘宝上没的卖了


我当时买来一个准备修全砖的,等savemeii出来的时候,都想把infectus2卖掉,bootmii消息一出来,才决定留下来修wii用,手里搞来2个黑屏砖主板,不是蓝牙坏
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2025-3-11 20:16 , Processed in 0.188152 second(s), 15 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部