13.03.2013 Views

Hacking the Xbox

Hacking the Xbox

Hacking the Xbox

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 9 - Sneaking in <strong>the</strong> Back Door 141<br />

Steil, <strong>the</strong> lead of <strong>the</strong> <strong>Xbox</strong>-Linux project, discovered a way to leverage<br />

this feature.<br />

The unmapping process is accomplished by writing to 0x8000.8008, a<br />

hardware register in <strong>the</strong> PCI configuration space. The basic strategy is to<br />

include a jam table opcode that writes to 0x8000.8008 and unmaps <strong>the</strong><br />

secret boot code before <strong>the</strong> initialization sequence is finished. Since <strong>the</strong><br />

caches are off at this time, <strong>the</strong> processor will start fetching and executing<br />

instructions from <strong>the</strong> decoy block. Fortunately, since <strong>the</strong> decoy block can be<br />

freely modified since it is part of <strong>the</strong> FLASH ROM. The catch, however, is<br />

that <strong>the</strong> jam table interpreter blocks writes to location 0x8000.8008, so<br />

this shouldn’t work. However, a bug in <strong>the</strong> decoding of <strong>the</strong> PCI configuration<br />

space in <strong>the</strong> Southbridge chipset makes <strong>the</strong> unmap instruction respond<br />

to multiple aliased addresses. In particular, <strong>the</strong> “function” bitfield is<br />

ignored. Thus, a write to 0x8000.8X08 where X is not equal to 0 also does<br />

<strong>the</strong> trick, and <strong>the</strong>se writes are not blocked by <strong>the</strong> jam table interpreter.<br />

Therefore, to gain control of <strong>the</strong> CPU IP using <strong>the</strong> MIST hack, you must<br />

modify <strong>the</strong> decoy block in FLASH to contain your code, <strong>the</strong>n add <strong>the</strong><br />

appropriate jam table opcode to unmap <strong>the</strong> secret boot ROM during<br />

hardware initialization.<br />

Microsoft Retaliates<br />

The discovery of security holes prompted many to speculate that Microsoft<br />

would be swift to rotate its security scheme. In August 2002, <strong>Xbox</strong>es with a<br />

new mo<strong>the</strong>rboard quietly started to appear in Australia. The first official<br />

word of <strong>the</strong> new security system came from an unlikely source: nVidia,<br />

<strong>the</strong> producer of <strong>the</strong> chipsets used in <strong>the</strong> <strong>Xbox</strong>. Following an unspectacular<br />

second quarter in 2002, an nVidia spokesperson cited this as <strong>the</strong> last<br />

of a few reasons why <strong>the</strong> quarter went poorly:<br />

“What we said about <strong>Xbox</strong> was that we reached a<br />

volume discount milestone, fur<strong>the</strong>r reducing <strong>the</strong><br />

margins. And that we will be taking an inventory<br />

write off in Q2 related to <strong>the</strong> amount of <strong>Xbox</strong><br />

MCPs that were made obsolete when MSFT<br />

transitioned to a new security code (by way of <strong>the</strong><br />

MIT hacker) and excess in nForce chipsets that we<br />

built in anticipation of higher demand of Athlonbased<br />

PCs.” — Derek Perez, PR Director, nVidia 2<br />

2 From an article by <strong>the</strong> Inquirer, http://www.<strong>the</strong>inquirer.net/<br />

?article=4735

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!