The Xbox Serial EEPROM contents


by Franz Lehner, Jeff Mears, and Michael Greb , 13 October 2003
struct eeprom {
   /* 256 Bytes */

   unsigned char data_hash[20];          // 0x00 - 0x13 HMAC_SHA1 hash of next two fields
   unsigned char crypted_confounder[8];  // 0x14 - 0x1B see HMAC docs
   unsigned char crypted_hddkey[20];     // 0x1C - 0x2F encrypted hard disk key

   unsigned char region[4];              // 0x30 - 0x33 encrypted region code

   unsigned char serial[12];             // 0x34 - 0x39 Xbox serial number in ASCII
   unsigned char mac_address[6];         // 0x40 - 0x45 Ethernet MAC address

   unsigned char pad_1[2];               // 0x46 - 0x47 always zero?

   unsigned char OnlineKey[16];          // 0x48 - 0x57 Online Key ?

   unsigned char pad_2[1];               // 0x58        always zero?

   unsigned char dvd_region[1];          // 0x59        0x01 = Region 1, 0x03 = Region 2

   unsigned char VideoStandard[4];       // 0x58 - 0x5B  ** 0x00014000 = NTSC, 0x00038000 = PAL
   
   unsigned char unknown_3[4];           // 0x5C - 0x5F  Unknown Padding ?



   //Comes configured up to here from factory..  everything after this can be zero'd out...
   //To reset Xbox to Factory settings, Make checksum3 0xFFFFFFFF and zero all data below (0x64-0xFF)
   //Doing this will Reset Xbox and upon startup will get Language & Setup screen...
   unsigned char Checksum3[4];           // 0x60 - 0x63  other Checksum of next  

   unsigned char TimeZoneBias[4];        // 0x64 - 0x67 Zone Bias?
   unsigned char TimeZoneStdName[4];     // 0x68 - 0x6B Standard timezone
   unsigned char TimeZoneDltName[4];     // 0x5C - 0x6F Daylight timezone
   unsigned char unknown_4[8];           // 0x70 - 0x77 Unknown Padding ?
   unsigned char TimeZoneStdDate[4];     // 0x78 - 0x7B 10-05-00-02 (Month-Day-DayOfWeek-Hour) 
   unsigned char TimeZoneDltDate[4];     // 0x7C - 0x7F 04-01-00-02 (Month-Day-DayOfWeek-Hour) 
   unsigned char unknown_5[8];           // 0x80 - 0x87 Unknown Padding ?
   unsigned char TimeZoneStdBias[4];     // 0x88 - 0x8B Standard Bias?
   unsigned char TimeZoneDltBias[4];     // 0x8C - 0x8F Daylight Bias?

   unsigned char LanguageID[4];          // 0x90 - 0x93 Language ID
   unsigned char VideoFlags[4];          // 0x94 - 0x97 Video Settings
   unsigned char AudioFlags[4];          // 0x98 - 0x9B Audio Settings
  
   unsigned char ParentalConGames[4];    // 0x9C - 0x9F 0=MAX rating
   unsigned char ParentalConPwd[4];      // 0xA0 - 0xA3 7=X, 8=Y, B=LTrigger, C=RTrigger
   unsigned char ParentalConMovies[4];   // 0xA4 - 0xA7 0=Max rating
  
   unsigned char XboxLiveIPAddress[4];   // 0xA8 - 0xAB Xbox Live IP Address..
   unsigned char XboxLiveDNS[4];         // 0xAC - 0xAF Xbox Live DNS Server..
   unsigned char XboxLiveGateWay[4];     // 0xB0 - 0xB3 Xbox Live Gateway Address..
   unsigned char XboxLiveSubNetMask[4];  // 0xB4 - 0xB7 Xbox Live Subnet Mask..
   unsigned char OtherSettings[4];       // 0xA8 - 0xBB Other Xbox Live settings ?

   unsigned char DVDPlaybackKitZone[4];  // 0xBC - 0xBF DVD Playback Kit Zone

   unsigned char unknown_6[64];          // 0xC0 - 0xFF Unknown Codes / History ?
};

The HMAC HDD Key

The HMAC HDD Key is generated out of the first 48 bytes. This section has been identified clearly.

The Region Code

This DWORD is encrypted. It corresponds to the region code in the XBE header:

1 North America
2 Japan
4 Europe/Australia
0x80000000 Manufacturing plant

The Serial Number

      1166356 20903
      ||    | |||||__
      ||    | ||||___ factory number
      ||    | |||____
      ||    | ||_____ week of year (starting Mondays)
      ||    | |______ last digit of year
      ||    |________
      ||_____________ number of Xbox within week and factory
      |______________ production line within factory 
    

The MAC address

This is the MAC address of the Ethernet hardware, which has been issued by the IEEE.

DVD Region

This DWORD corresponds to the region code for playback of DVD movies:

0x00 None
0x01 Region 1
... ...
0x06 Region 6