Difference between revisions of "Talk:Dashboard"

From xboxdevwiki
Jump to: navigation, search
(Format code: different codes / serial number relation: new section)
 
(Format code: different codes / serial number relation)
 
Line 3: Line 3:
 
* More data is needed to sort out which Xbox a particular code works on, and what other codes exist. Is it based on Xbox scene version numbers?  Most likely, NOT!  Is it based on factory of production? Is it based on BIOS version?  Does anyone know?
 
* More data is needed to sort out which Xbox a particular code works on, and what other codes exist. Is it based on Xbox scene version numbers?  Most likely, NOT!  Is it based on factory of production? Is it based on BIOS version?  Does anyone know?
  
Xbox versions usually refer to ''hardware'' revisions.
+
This seems to be handled by settings3.xap: <code>thePanelJoystick.secretKey = "Y" + theConfig.GetRecoveryKey();</code>
However, formating is a ''software'' process.
 
  
By the serial number, MS can figure out when the Xbox was produced and also what kind of dashboard shipped with it.
+
The <code>GetRecoveryKey</code> function seems to look up symbols from "AXYUDLR" based on some variation of the Xbox HD Key + another random 16 byte key (hardcoded into the kernel). Combined using <code>XcHMAC(hardcodedkeyimentioned, 16, XboxHDKey, 16, NULL, 0, buffer)</code>.
I'd assume that the code is only depending on the dashboard version.
 
  
I don't think the kernel version will have any influence as all input handling and disk formatting stuff is done in the XAPI / Dashboard; not the kernel.
+
Then the key is generated using:
  
Therefore we can probably also easily test and confirm this in cxbx-r or xqemu by running various dashboards.{{FIXME|reason=do it!}}
+
<pre>
If we don't have it yet, we should try to make a backup of stock Xbox hdds, before installing a softmod. Try to archive the various dashboard versions.
+
uint16_t* buffer_words = buffer;
 +
for(unsigned int i = 0; i < 4; i++) {
 +
  code[i] = "AXYUDLR"[buffer_words[i] % 7];
 +
}
 +
</pre>
 +
 
 +
This function is similar to the one being used to generate Xbox Live account crypto keys. We should probably write a tool to locate these functions and extract the keys. All of these are contained in the dashboard app.
  
 
--[[User:JayFoxRox|JayFoxRox]] ([[User talk:JayFoxRox|talk]]) 02:16, 2 September 2017 (PDT)
 
--[[User:JayFoxRox|JayFoxRox]] ([[User talk:JayFoxRox|talk]]) 02:16, 2 September 2017 (PDT)

Latest revision as of 10:02, 2 September 2017

Format code: different codes / serial number relation

  • More data is needed to sort out which Xbox a particular code works on, and what other codes exist. Is it based on Xbox scene version numbers? Most likely, NOT! Is it based on factory of production? Is it based on BIOS version? Does anyone know?

This seems to be handled by settings3.xap: thePanelJoystick.secretKey = "Y" + theConfig.GetRecoveryKey();

The GetRecoveryKey function seems to look up symbols from "AXYUDLR" based on some variation of the Xbox HD Key + another random 16 byte key (hardcoded into the kernel). Combined using XcHMAC(hardcodedkeyimentioned, 16, XboxHDKey, 16, NULL, 0, buffer).

Then the key is generated using:

uint16_t* buffer_words = buffer;
for(unsigned int i = 0; i < 4; i++) {
  code[i] = "AXYUDLR"[buffer_words[i] % 7];
}

This function is similar to the one being used to generate Xbox Live account crypto keys. We should probably write a tool to locate these functions and extract the keys. All of these are contained in the dashboard app.

--JayFoxRox (talk) 02:16, 2 September 2017 (PDT)