<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: boot1</title>
	<atom:link href="http://hackmii.com/2008/06/boot1/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackmii.com/2008/06/boot1/</link>
	<description>Notes from inside your Wii</description>
	<lastBuildDate>Thu, 09 Sep 2010 08:22:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: marcan</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-5857</link>
		<dc:creator>marcan</dc:creator>
		<pubDate>Wed, 23 Dec 2009 11:03:16 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-5857</guid>
		<description>The key is in boot0. Boot0 is in an internal Hollywood ROM that cannot be dumped externally, but you can dump it if you can run Starlet code. It was dumped using a replacement boot2 early on.</description>
		<content:encoded><![CDATA[<p>The key is in boot0. Boot0 is in an internal Hollywood ROM that cannot be dumped externally, but you can dump it if you can run Starlet code. It was dumped using a replacement boot2 early on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PeterMacGonagan</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-5847</link>
		<dc:creator>PeterMacGonagan</dc:creator>
		<pubDate>Thu, 10 Dec 2009 14:21:24 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-5847</guid>
		<description>Ok, I answer to myself. If you look at boot0 code your see the variable boot1_key:
boot0:FFFF05FC boot1_key       DCD 0x9258A752,0x64960D82,0x676F9044,0x56882A73

Is it stored as it in NAND??? Why isn&#039;t it stored in OTP of Hollywood chip?</description>
		<content:encoded><![CDATA[<p>Ok, I answer to myself. If you look at boot0 code your see the variable boot1_key:<br />
boot0:FFFF05FC boot1_key       DCD 0&#215;9258A752,0&#215;64960D82,0&#215;676F9044,0&#215;56882A73</p>
<p>Is it stored as it in NAND??? Why isn&#8217;t it stored in OTP of Hollywood chip?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PeterMacGonagan</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-5845</link>
		<dc:creator>PeterMacGonagan</dc:creator>
		<pubDate>Wed, 09 Dec 2009 22:59:20 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-5845</guid>
		<description>&quot;boot1 is the second stage of the Wii’s bootloader. It lives at the beginning of flash; it is encrypted by AES, using a fixed key. &quot;

I suppose it&#039;s that key: 9258a75264960d82676f904456882a73 

How did you find it?</description>
		<content:encoded><![CDATA[<p>&#8220;boot1 is the second stage of the Wii’s bootloader. It lives at the beginning of flash; it is encrypted by AES, using a fixed key. &#8221;</p>
<p>I suppose it&#8217;s that key: 9258a75264960d82676f904456882a73 </p>
<p>How did you find it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cloned</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-4507</link>
		<dc:creator>cloned</dc:creator>
		<pubDate>Wed, 25 Mar 2009 22:42:48 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-4507</guid>
		<description>many thanks for the additional info , 

I don&#039;t have so much time to do it all by myself so , any help to find out if is there any real way to use the ZERO-hash back door will be apreciated very much

as soon as I have time i&#039;ll have a look to boot0 first then to boot1 , looking for some clue wasn&#039;t noticed yet , then maybe i&#039;ll try it by myself
(or not 
,if I finally feel it as too much risky as U say)</description>
		<content:encoded><![CDATA[<p>many thanks for the additional info , </p>
<p>I don&#8217;t have so much time to do it all by myself so , any help to find out if is there any real way to use the ZERO-hash back door will be apreciated very much</p>
<p>as soon as I have time i&#8217;ll have a look to boot0 first then to boot1 , looking for some clue wasn&#8217;t noticed yet , then maybe i&#8217;ll try it by myself<br />
(or not<br />
,if I finally feel it as too much risky as U say)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marcan</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-4502</link>
		<dc:creator>marcan</dc:creator>
		<pubDate>Wed, 25 Mar 2009 22:13:37 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-4502</guid>
		<description>The problem is we don&#039;t know how to write to OTP, or how the write-addressing would work. It also seems to be addressed in 32-bit words so a problem could corrupt an entire word. We could try randomly poking registers, but we don&#039;t know nearly enough to guarantee that we won&#039;t overwrite the wrong part. And that would mean a brick.

OTP is read by writing the address to one register OR 0x80000000 and reading another register which contains the read 32-bit word. The reading register seems to be read-only (not a holding register) so that&#039;s probably not how you write to OTP.</description>
		<content:encoded><![CDATA[<p>The problem is we don&#8217;t know how to write to OTP, or how the write-addressing would work. It also seems to be addressed in 32-bit words so a problem could corrupt an entire word. We could try randomly poking registers, but we don&#8217;t know nearly enough to guarantee that we won&#8217;t overwrite the wrong part. And that would mean a brick.</p>
<p>OTP is read by writing the address to one register OR 0&#215;80000000 and reading another register which contains the read 32-bit word. The reading register seems to be read-only (not a holding register) so that&#8217;s probably not how you write to OTP.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cloned</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-4497</link>
		<dc:creator>cloned</dc:creator>
		<pubDate>Wed, 25 Mar 2009 21:39:44 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-4497</guid>
		<description>thanX , 

this was +/- the answer was looking for ...

don&#039;t worry about my knowledge with OTP devices, I&#039;m proud to be the designer of a board for ISA BUS tha only (ONLY) using OTP devices (PLA) (very old stuff hehe) can let you introduce hardware breakpoints in any x86 uP mounted in any ISA (old stuff as well ) compliant  motherboard

as complement to my CV , I&#039;m an ARM enthusiast ,which owns a Archimedes A310 since 1987 (wow 22 year ARM story ,shit i&#039;m getting old)

and finally I do manage crypto stuff each day,so I know very well the math meaning of SHA-any 

so my idea ,was not ,of course , to act as kamikaze and to go stright  to change directly the SHA-1 hash
(BTW , why do they check correctly SHA1 in boot0 then use a flawed check in boot1 ?)

I saw in a wiki a list of locations which is suposed 
they are in the OTP area, inside this list ther is at least 1 which maybe can allow you to check if OTP protection is really ON 

(9  NG id  , for example looks like a place where you can try to flip a bit without briking your wiii)

as you state , if the default of OTP looks like to be ZERO , then probably isn&#039;t made of fuse and instead is a protected EE2 area, so if you try to flip an innocent BIT without risk of briking the wii then later you can write all ZERO in SHA1 hash ..  

Ok, I know, looks like too much speculation, but also boot1 flaw to anybody knowing SHA1 looks like to be impossible , isn&#039;it ?

so why do they can&#039;t have also leaved de lock of OTP open</description>
		<content:encoded><![CDATA[<p>thanX , </p>
<p>this was +/- the answer was looking for &#8230;</p>
<p>don&#8217;t worry about my knowledge with OTP devices, I&#8217;m proud to be the designer of a board for ISA BUS tha only (ONLY) using OTP devices (PLA) (very old stuff hehe) can let you introduce hardware breakpoints in any x86 uP mounted in any ISA (old stuff as well ) compliant  motherboard</p>
<p>as complement to my CV , I&#8217;m an ARM enthusiast ,which owns a Archimedes A310 since 1987 (wow 22 year ARM story ,shit i&#8217;m getting old)</p>
<p>and finally I do manage crypto stuff each day,so I know very well the math meaning of SHA-any </p>
<p>so my idea ,was not ,of course , to act as kamikaze and to go stright  to change directly the SHA-1 hash<br />
(BTW , why do they check correctly SHA1 in boot0 then use a flawed check in boot1 ?)</p>
<p>I saw in a wiki a list of locations which is suposed<br />
they are in the OTP area, inside this list ther is at least 1 which maybe can allow you to check if OTP protection is really ON </p>
<p>(9  NG id  , for example looks like a place where you can try to flip a bit without briking your wiii)</p>
<p>as you state , if the default of OTP looks like to be ZERO , then probably isn&#8217;t made of fuse and instead is a protected EE2 area, so if you try to flip an innocent BIT without risk of briking the wii then later you can write all ZERO in SHA1 hash ..  </p>
<p>Ok, I know, looks like too much speculation, but also boot1 flaw to anybody knowing SHA1 looks like to be impossible , isn&#8217;it ?</p>
<p>so why do they can&#8217;t have also leaved de lock of OTP open</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marcan</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-4468</link>
		<dc:creator>marcan</dc:creator>
		<pubDate>Wed, 25 Mar 2009 18:07:54 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-4468</guid>
		<description>1) probably
2) almost certainly
3) almost certainly
4) no, since you&#039;d probably brick your Wii

There&#039;s a difference between OTP devices used for program storage, and OTP areas used for secure key storage. The latter tend to have security mechanisms like (gasp) a write protect fuse that when blown prevents further writes.

It is almost certain that the OTP is burned early during the manufacturing process and then a fuse is blown to lock it. But even IF you could flip bits from 0 to 1, it&#039;s of no use because you&#039;d still  need to brute force half of the boot1 SHA-1 bits, which is infeasible.

If boot0 checks for an all-zero OTP hash then zero is almost certainly the blank state for this OTP. 

Conclusion: maybe there&#039;s a way to exploit this, but the chances are very slim. If someone wants to provide 5 or 6 Wiis to attempt to perform OTP write experiments, we&#039;ll gladly try it out.</description>
		<content:encoded><![CDATA[<p>1) probably<br />
2) almost certainly<br />
3) almost certainly<br />
4) no, since you&#8217;d probably brick your Wii</p>
<p>There&#8217;s a difference between OTP devices used for program storage, and OTP areas used for secure key storage. The latter tend to have security mechanisms like (gasp) a write protect fuse that when blown prevents further writes.</p>
<p>It is almost certain that the OTP is burned early during the manufacturing process and then a fuse is blown to lock it. But even IF you could flip bits from 0 to 1, it&#8217;s of no use because you&#8217;d still  need to brute force half of the boot1 SHA-1 bits, which is infeasible.</p>
<p>If boot0 checks for an all-zero OTP hash then zero is almost certainly the blank state for this OTP. </p>
<p>Conclusion: maybe there&#8217;s a way to exploit this, but the chances are very slim. If someone wants to provide 5 or 6 Wiis to attempt to perform OTP write experiments, we&#8217;ll gladly try it out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cloned</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-4467</link>
		<dc:creator>cloned</dc:creator>
		<pubDate>Wed, 25 Mar 2009 17:57:09 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-4467</guid>
		<description>Sorry , but I don&#039;t agree ...

I don&#039;t know how old you are  .. so don&#039;t take it wrong please .. and maybe just take it as a tip if you didn&#039;t investigate already this way

I did write many times over and over to many OTP devices , then I got others OTP were that wasn&#039;t possible but usually because an additional LOCK (fuse or whatever)

as background ..

first OTPs devices were PROMs 
(guess you already know the meaning of)

then came the era of EPROMs then the one of EE2PROMs and EE2 devices in general (FLASH)

at least some years ago you could get as sort of PROM a OTP device, which in turns results in a lot of fuse pulled to a pullUp resistor giving to the corresponding BIT the meaning of 1 unless you blow the fuse ... 

today you can still get OTP as a lot of fuse to blow or as a EE2 chip with a lock to make the further writes impossible , 
but in any case if the OTP is made of a lot of fuse they use to be pulled up to 1 as default, 
which in turns let you can blow their fuse unless all of their fuse are blowedup 
(this was an usefull trik for developers of firmware stored in OTPs because in fact let u write many version of programs in the same OTP as long there is enaugh space free space to blow as 00 wich in many case result to be equivalent of a NOP opcode)


so my question in fact was
1) is the wii OTP made of fuse or what ?
2) theres a lock to block further writes to it 
3) if yes , it&#039;s really locked or not ?
4) anybody try to rewrite some bit of it ?

many thanks,</description>
		<content:encoded><![CDATA[<p>Sorry , but I don&#8217;t agree &#8230;</p>
<p>I don&#8217;t know how old you are  .. so don&#8217;t take it wrong please .. and maybe just take it as a tip if you didn&#8217;t investigate already this way</p>
<p>I did write many times over and over to many OTP devices , then I got others OTP were that wasn&#8217;t possible but usually because an additional LOCK (fuse or whatever)</p>
<p>as background ..</p>
<p>first OTPs devices were PROMs<br />
(guess you already know the meaning of)</p>
<p>then came the era of EPROMs then the one of EE2PROMs and EE2 devices in general (FLASH)</p>
<p>at least some years ago you could get as sort of PROM a OTP device, which in turns results in a lot of fuse pulled to a pullUp resistor giving to the corresponding BIT the meaning of 1 unless you blow the fuse &#8230; </p>
<p>today you can still get OTP as a lot of fuse to blow or as a EE2 chip with a lock to make the further writes impossible ,<br />
but in any case if the OTP is made of a lot of fuse they use to be pulled up to 1 as default,<br />
which in turns let you can blow their fuse unless all of their fuse are blowedup<br />
(this was an usefull trik for developers of firmware stored in OTPs because in fact let u write many version of programs in the same OTP as long there is enaugh space free space to blow as 00 wich in many case result to be equivalent of a NOP opcode)</p>
<p>so my question in fact was<br />
1) is the wii OTP made of fuse or what ?<br />
2) theres a lock to block further writes to it<br />
3) if yes , it&#8217;s really locked or not ?<br />
4) anybody try to rewrite some bit of it ?</p>
<p>many thanks,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bushing</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-4464</link>
		<dc:creator>bushing</dc:creator>
		<pubDate>Wed, 25 Mar 2009 10:06:08 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-4464</guid>
		<description>OTP is &quot;One-Time Programmable&quot; memory.  By definition, we can&#039;t write OTP more than once...</description>
		<content:encoded><![CDATA[<p>OTP is &#8220;One-Time Programmable&#8221; memory.  By definition, we can&#8217;t write OTP more than once&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cloned</title>
		<link>http://hackmii.com/2008/06/boot1/comment-page-1/#comment-4462</link>
		<dc:creator>cloned</dc:creator>
		<pubDate>Tue, 24 Mar 2009 19:56:24 +0000</pubDate>
		<guid isPermaLink="false">http://hackmii.com/?p=47#comment-4462</guid>
		<description>first of all i&#039;d like to thank you for the infos collected here n there about wii boot chain ..

Reading here &#039;n&#039; there about  bootmii stuff,
I got the information (don&#039;t know if it&#039;s wrong) and where it came from (somebody got a boot zero  dump ? can I have a look to it ?? ) 

Well, the point is .. 
1) boot0 checks boot1 against the hash inside OTP
2)if hash in OTP is ZERO the check is skipped
3) and if theres no protection about write more than once the OTP (didn&#039;t see anything about that)

then is just matter to write all zero in place of the OTP hash and is done.. easy isn&#039;it ?

my assumption is .. standard OTP bits are default to 1 ... (was common to leave some space as FF in early processors working only with OTP as ROM , so you can done changes later bay changing these virgins locations )

if theres no protection against write OTP more than once and the magic string is all ZERO then would be fantastic ..</description>
		<content:encoded><![CDATA[<p>first of all i&#8217;d like to thank you for the infos collected here n there about wii boot chain ..</p>
<p>Reading here &#8216;n&#8217; there about  bootmii stuff,<br />
I got the information (don&#8217;t know if it&#8217;s wrong) and where it came from (somebody got a boot zero  dump ? can I have a look to it ?? ) </p>
<p>Well, the point is ..<br />
1) boot0 checks boot1 against the hash inside OTP<br />
2)if hash in OTP is ZERO the check is skipped<br />
3) and if theres no protection about write more than once the OTP (didn&#8217;t see anything about that)</p>
<p>then is just matter to write all zero in place of the OTP hash and is done.. easy isn&#8217;it ?</p>
<p>my assumption is .. standard OTP bits are default to 1 &#8230; (was common to leave some space as FF in early processors working only with OTP as ROM , so you can done changes later bay changing these virgins locations )</p>
<p>if theres no protection against write OTP more than once and the magic string is all ZERO then would be fantastic ..</p>
]]></content:encoded>
	</item>
</channel>
</rss>
