Console Hacking 2008: Wii Fail

Is implementation the enemy of design?

marcan and bushing

Team Twiizers

Introduction: The Wii

Design goals:

Primary hardware overview

Improve and extend the GameCube

Security architecture

Two custom processors

PowerPC 750CL "Broadway": Fast and insecure
Hollywood: ATI Graphics, peripherals, memory, "IO Bridge"
IO Bridge is a NEC ARM926 SoC: "Starlet"

Hollywood (photo by Flylogic)

Security architecture

Two custom processors

PowerPC 750CL "Broadway": Fast and insecure
Hollywood: ATI Graphics, peripherals, memory, "IO Bridge"

Secure Boot process

Code is booted directly from an internal 512MB NAND Flash chip
Multi-stage process reduces cost and increases flexibility

Software titles

Wii Optical Discs (WODs)

IOS

Custom micro-kernel OS designed by BroadOn (California)

All in all, this is a pretty secure system.

Theoretically.

Breaking in: GameCube Mode

Hack: Tweezer Attack!

Keys

Per-console keys

Global keys

Key locations

Inside IOS

Signatures

RSA primer

RSA the Nintendo Way


1C 28  ADDS  R0, R5, #0           ; R0 = signature_end
38 14  SUBS  R0, #20              ; R0 -= 20
99 02  LDR   R1, [SP, #SHA1_calc] ; R1 = SHA-1
22 14  MOVS  R2, #20              ; R2 = 20
4B 0F  LDR   R3, =(strncmp+1)
47 98  BLX   R3                   ; strncmp(SHA1_sig, SHA1_in, 20)
	

Hack: Fakesigning

Fakesigning Demo!

Data:

Fakesign!

Hack: Twilight Hack

The Birth of a Hack

Twilight Hack in 10 steps

Life of a typical exploit

  1. You find a bug
  2. You use the bug for a while
  3. Vendor fixes bug
  4. GOTO 1

Life of the Twilight Hack

  1. You find a bug
  2. You use the bug for a while
  3. Vendor tries to detect exploit and remove it
  4. Vendor botches the detection
  5. You keep using the same tweaked bug
  6. Vendor really detects the exploit this time
  7. Vendor botches the detection again
  8. You keep using the same tweaked bug
  9. ??????????

DI_Verify

Abusing DI_Verify

Abusing DVD Video

Vendor Response

Crypto Problems

Broadway API Problems

Procedural problems

Embedded Device Scorecard

Homebrew demos