13.03.2013 Views

Hacking the Xbox

Hacking the Xbox

Hacking the Xbox

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

120<br />

<strong>Hacking</strong> <strong>the</strong> <strong>Xbox</strong>: An Introduction to Reverse Engineering<br />

Our next eavesdropping candidate, <strong>the</strong> main memory bus, is a 128-bit<br />

data bus plus address and control signals running at 200 MHz with<br />

double data rate (DDR) clocking. The memory bus uses a signaling<br />

convention known as SSTL-2. (The details of this bus can be inferred by<br />

reading <strong>the</strong> datasheet for <strong>the</strong> Samsung K4D263238M memory part,<br />

available at <strong>the</strong> Samsung Electronics website.) Despite its higher speeds,<br />

eavesdropping <strong>the</strong> main memory bus is probably easier than eavesdropping<br />

<strong>the</strong> processor FSB, because of <strong>the</strong> empty (spare) memory footprints<br />

designed into <strong>the</strong> <strong>Xbox</strong> mo<strong>the</strong>rboard.<br />

A relatively inexpensive, standard 100-pin TQFP adapter (Thin Quad Flat<br />

Pack, a rectangular chip package with 100 gull-wing shaped pins) could be<br />

soldered onto <strong>the</strong> empty memory footprints. These adapters would provide<br />

convenient probe points for connecting a logic analyzer. The problem with<br />

this approach is that you can only capture data that is written to main<br />

memory. Decryption keys are generally read-only data, and read-only<br />

More About High Speed<br />

Information Transmission<br />

Eavesdropping and modifying data on computer buses is<br />

a powerful technique that is difficult to counter. In order to<br />

understand how to eavesdrop, you will need a little bit of<br />

background on how digital information is transmitted inside<br />

a computer.<br />

There are two major categories of signaling standards: singleended<br />

and differential. The transmission of digital information<br />

over a wire requires a translation into physical quantities<br />

such as voltage and current. Classically, signals were<br />

defined in terms of voltages measured with respect to a<br />

common reference potential called <strong>the</strong> “ground.” This kind<br />

of signaling is known as single-ended or unbalanced signaling.<br />

Unfortunately, <strong>the</strong> idea of a ground reference point<br />

only works when signals change slowly with respect to <strong>the</strong>ir<br />

propagation time. In reality, every change in potential is<br />

accompanied by a flow of current. The laws of nature demand<br />

that current be conserved, i.e., for every flow of current<br />

in one direction, <strong>the</strong>re must be a flow of current in <strong>the</strong><br />

reverse direction. In single-ended signaling, <strong>the</strong> reverse current,<br />

also known as a return current, must find its way back<br />

through <strong>the</strong> “ground”. At very high speeds, <strong>the</strong> return paths<br />

for current do not necessarily follow <strong>the</strong> same path as <strong>the</strong><br />

signal current. This imbalance results in a distorted signal.<br />

Di ferential signaling combats this problem by using two wires<br />

to transmit a signal, with one wire used for <strong>the</strong> signal current<br />

and <strong>the</strong> o<strong>the</strong>r used for an explicit return current path. The<br />

differential approach allows <strong>the</strong> signal and return paths to<br />

be laid out so that <strong>the</strong>y track each o<strong>the</strong>r, ensuring that <strong>the</strong><br />

flow of current is balanced. The result is a more robust signal<br />

transmission system at <strong>the</strong> cost of twice <strong>the</strong> number of wires.<br />

(continued)

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

Saved successfully!

Ooh no, something went wrong!