XConfig: Difference between revisions

From Xenon Wiki
Jump to navigation Jump to search
imported>Stoker25
mNo edit summary
imported>Stoker25
mNo edit summary
Line 656: Line 656:
entry 0 and entry 1 must match, so be sure to write the data to entry 1 and then 0x00000001 + data to entry 0<br />
entry 0 and entry 1 must match, so be sure to write the data to entry 1 and then 0x00000001 + data to entry 0<br />
if they don't match, xbox will blank out both entries<br/>
if they don't match, xbox will blank out both entries<br/>
doesn't actually seem to be used in live auth at all<br /><br />
doesn't actually seem to be used in live auth at all<br />
FUN FACT: XeKey 0x17 is (possibly?) stored in KV, so if you swapped keyvaults at all it won't decrypt properly<br /><br />


"XCONFIG_XNET_PARAMETERS_CATEGORY" <br />
"XCONFIG_XNET_PARAMETERS_CATEGORY" <br />

Revision as of 17:46, 29 July 2011

practically the file format of the config blocks (although its not, since these are structured for use with ExGetXConfigSetting/ExSetXConfigSetting)

// xconfig.h
#ifndef _XCONFIG_H
#define _XCONFIG_H

#include "types.h"

//u16 XConfig_numEntr[] = {0x3, 0xA, 0xA, 0x31, 0x2, 0x2, 0xB, 0x8, 0x3, 0x5, 0x3}; // the number of entries in each category @ 9199

const char XConfig_names[][38] = { // names of categories
	"XCONFIG_STATIC_CATEGORY", 
	"XCONFIG_STATISTIC_CATEGORY", 
	"XCONFIG_SECURED_CATEGORY", 
	"XCONFIG_USER_CATEGORY", 
	"XCONFIG_XNET_MACHINE_ACCOUNT_CATEGORY", 
	"XCONFIG_XNET_PARAMETERS_CATEGORY", 
	"XCONFIG_MEDIA_CENTER_CATEGORY", 
	"XCONFIG_CONSOLE_CATEGORY", 
	"XCONFIG_DVD_CATEGORY", 
	"XCONFIG_IPTV_CATEGORY", 
	"XCONFIG_SYSTEM_CATEGORY"
};

enum { // category enumerator
	//XCONFIG_CATEGORY_TYPES
	XCONFIG_STATIC_CATEGORY = 0x0,					//_XCONFIG_STATIC_SETTINGS
	XCONFIG_STATISTIC_CATEGORY = 0x1,				//_XCONFIG_STATISTIC_SETTINGS
	XCONFIG_SECURED_CATEGORY = 0x2,					//_XCONFIG_SECURED_SETTINGS
	XCONFIG_USER_CATEGORY = 0x3,					//_XCONFIG_USER_SETTINGS
	XCONFIG_XNET_MACHINE_ACCOUNT_CATEGORY = 0x4,	//_XCONFIG_XNET_SETTINGS
	XCONFIG_XNET_PARAMETERS_CATEGORY = 0x5,			//_XCONFIG_XNET_SETTINGS
	XCONFIG_MEDIA_CENTER_CATEGORY = 0x6,			//_XCONFIG_MEDIA_CENTER_SETTINGS
	XCONFIG_CONSOLE_CATEGORY = 0x7, 				//_XCONFIG_CONSOLE_SETTINGS
	XCONFIG_DVD_CATEGORY = 0x8, 					//_XCONFIG_DVD_SETTINGS
	XCONFIG_IPTV_CATEGORY = 0x9, 					//_XCONFIG_IPTV_SETTINGS
	XCONFIG_SYSTEM_CATEGORY = 0xa,					//_XCONFIG_SYSTEM_SETTINGS
	XCONFIG_CATEGORY_MAX = 0xb,
};


#pragma warning(push)
#pragma warning(disable: 4201)  // unnamed struct/union
#pragma pack(push, 1)

/* **************************** _XCONFIG_SECURED_SETTINGS **************************** */
//XCONFIG_SECURED_ENTRIES
enum{
	XCONFIG_SECURED_DATA = 0x0,
	XCONFIG_SECURED_MAC_ADDRESS = 0x1,
	XCONFIG_SECURED_AV_REGION = 0x2,
	XCONFIG_SECURED_GAME_REGION = 0x3,
	XCONFIG_SECURED_DVD_REGION = 0x4,
	XCONFIG_SECURED_RESET_KEY = 0x5,
	XCONFIG_SECURED_SYSTEM_FLAGS = 0x6,
	XCONFIG_SECURED_POWER_MODE = 0x7,
	XCONFIG_SECURED_ONLINE_NETWORK_ID = 0x8,
	XCONFIG_SECURED_POWER_VCS_CONTROL = 0x9,
	XCONFIG_SECURED_ENTRIES_MAX = 0xa
};

// _XCONFIG_SECURED_SETTINGS macros for key pointers
#define XK_SECURED_1(x) &x.MACAddress			// key 0x1 6 bytes
#define XK_SECURED_2(x) &x.AVRegion				// key 0x2 4 bytes
#define XK_SECURED_3(x) &x.GameRegion			// key 0x3 2 bytes
#define XK_SECURED_4(x) &x.DVDRegion			// key 0x4 4 bytes
#define XK_SECURED_5(x) &x.ResetKey				// key 0x5 4 bytes
#define XK_SECURED_6(x) &x.OnlineNetworkID//??	// ??key 0x6 4 bytes?? key 0x8 4 bytes?? NOT SURE WHICH, 0x8 or 0x6
#define XK_SECURED_7(x) &x.PowerMode			// key 0x7 2 bytes
#define XK_SECURED_8(x) &x.SystemFlags //??		// ??key 0x6 4 bytes?? key 0x8 4 bytes?? NOT SURE WHICH, 0x8 or 0x6
#define XK_SECURED_9(x) &x.PowerVcsControl		// key 0x9 2 bytes

typedef struct _XCONFIG_POWER_MODE{ // used by _XCONFIG_SECURED_SETTINGS
	u8 VIDDelta;
	u8 Reserved;
} XCONFIG_POWER_MODE, *PXCONFIG_POWER_MODE;

typedef struct _XCONFIG_POWER_VCS_CONTROL{ // used by _XCONFIG_SECURED_SETTINGS
	u16 Configured : 1;
	u16 Reserved : 3;
	u16 Full : 4;
	u16 Quiet : 4;
	u16 Fuse : 4;
} XCONFIG_POWER_VCS_CONTROL, *PXCONFIG_POWER_VCS_CONTROL; // 2 bytes

typedef struct _XCONFIG_SECURED_SETTINGS{
	u32 Checksum; //0
	u32 Version; //4
	char OnlineNetworkID[4]; //??key 0x6 4 bytes?? key 0x8 4 bytes?? NOT SURE WHICH, 0x8 or 0x6
	char Reserved1[8]; //12
	char Reserved2[12]; //20
	u8 MACAddress[6]; // key 0x1 6 bytes
	char Reserved3[2]; //38
	u32 AVRegion; // key 0x2 4 bytes - 00 00 10 00 can/usa
	u16 GameRegion; // key 0x3 2 bytes - 0x00FF can/usa
	char Reserved4[6];//46
	u32 DVDRegion;// key 0x4 4 bytes - 0x00000001 can/usa
	u32 ResetKey;// key 0x5 4 bytes
	u32 SystemFlags;// ??key 0x6 4 bytes?? key 0x8 4 bytes?? NOT SURE WHICH, 0x8 or 0x6
	XCONFIG_POWER_MODE PowerMode;// key 0x07 2 bytes
	XCONFIG_POWER_VCS_CONTROL PowerVcsControl;// key 0x9 2 bytes
	char ReservedRegion[444];//68
} XCONFIG_SECURED_SETTINGS, *PXCONFIG_SECURED_SETTINGS; // XConfigSecuredSettings; 512 bytes


/* **************************** _XCONFIG_CONSOLE_SETTINGS **************************** */
//XCONFIG_CONSOLE_ENTRIES
enum{
	XCONFIG_CONSOLE_DATA = 0x0,
	XCONFIG_CONSOLE_SCREEN_SAVER = 0x1,
	XCONFIG_CONSOLE_AUTO_SHUT_OFF = 0x2,
	XCONFIG_CONSOLE_WIRELESS_SETTINGS = 0x3,
	XCONFIG_CONSOLE_CAMERA_SETTINGS = 0x4,
	XCONFIG_CONSOLE_PLAYTIMERDATA = 0x5,
	XCONFIG_CONSOLE_MEDIA_DISABLEAUTOLAUNCH = 0x6,
	XCONFIG_CONSOLE_KEYBOARD_LAYOUT = 0x7,
};

// _XCONFIG_CONSOLE_SETTINGS macros for key pointers
#define XK_CONSOLE_1(x) &x.ScreenSaver				// key 0x1 2 bytes
#define XK_CONSOLE_2(x) &x.AutoShutoff				// key 0x2 2 bytes
#define XK_CONSOLE_3(x) &x.WirelessSettings			// key 0x3 256 bytes
#define XK_CONSOLE_4(x) &x.CameraSettings			// key 0x4 4 bytes
#define XK_CONSOLE_5(x) &x.PlayTimerData			// key 0x5 20 bytes
#define XK_CONSOLE_6(x) &x.MediaDisableAutoLaunch	// key 0x6 2 bytes
#define XK_CONSOLE_7(x) &x.KeyboardLayout			// key 0x7 2 bytes

typedef struct _XCONFIG_PLAYTIMERDATA{ // used by _XCONFIG_CONSOLE_SETTINGS
	_ULARGE_INTEGER uliResetDate;
	u32 dwPlayTimerFrequency;
	u32 dwTotalPlayTime;
	u32 dwRemainingPlayTime;
} XCONFIG_PLAYTIMERDATA, *PXCONFIG_PLAYTIMERDATA;

typedef struct _XCONFIG_CONSOLE_SETTINGS{
	u32 CheckSum;
	u32 Version;
	s16 ScreenSaver; // key 0x1 2 bytes
	s16 AutoShutoff; // key 0x2 2 bytes
	u8 WirelessSettings[256]; // key 0x3 256 bytes
	u32 CameraSettings; // key 0x4 4 bytes
	u8 CameraSettingsReserved[28];
	XCONFIG_PLAYTIMERDATA PlayTimerData; // key 0x5 20 bytes
	s16 MediaDisableAutoLaunch; // key 0x6 2 bytes
	s16 KeyboardLayout; // key 0x7 2 bytes
} XCONFIG_CONSOLE_SETTINGS, *PXCONFIG_CONSOLE_SETTINGS; // XConfigConsoleSettings; 324 bytes


/* **************************** _XCONFIG_DVD_SETTINGS **************************** */
//XCONFIG_DVD_ENTRIES
enum{
	XCONFIG_DVD_ALL = 0x0,
	XCONFIG_DVD_VOLUME_ID = 0x1,
	XCONFIG_DVD_BOOKMARK = 0x2,
	XCONFIG_DVD_ENTRIES_MAX = 0x3
};

// _XCONFIG_DVD_SETTINGS macros for key pointers
#define XK_DVD_1(x) &x.VolumeId	// key 0x1 20 bytes
#define XK_DVD_2(x) &x.Data		// key 0x2 640 bytes

typedef struct _XCONFIG_DVD_SETTINGS{
	u32 Version;
	u8 VolumeId[20]; // key 0x1 20 bytes
	u8 Data[640]; // key 0x2 640 bytes
} XCONFIG_DVD_SETTINGS, *PXCONFIG_DVD_SETTINGS; // XConfigDvdSettings; 664 bytes


/* **************************** _XCONFIG_IPTV_SETTINGS **************************** */
//XCONFIG_IPTV_ENTRIES
enum{
	XCONFIG_IPTV_DATA = 0x0,
	XCONFIG_IPTV_SERVICE_PROVIDER_NAME = 0x1,
	XCONFIG_IPTV_PROVISIONING_SERVER_URL = 0x2,
	XCONFIG_IPTV_SUPPORT_INFO = 0x3,
	XCONFIG_IPTV_BOOTSTRAP_SERVER_URL = 0x4,
	XCONFIG_IPTV_ENTRIES_MAX = 0x5
};

// _XCONFIG_IPTV_SETTINGS macros for key pointers
#define XK_IPTV_1(x) &x.ServiceProviderName		// key 0x1 120 bytes
#define XK_IPTV_2(x) &x.ProvisioningServerURL	// key 0x2 128 bytes
#define XK_IPTV_3(x) &x.SupportInfo				// key 0x3 128 bytes
#define XK_IPTV_4(x) &x.BootstrapServerURL		// key 0x4 128 bytes

typedef struct _XCONFIG_IPTV_SETTINGS{
	u32 CheckSum;
	u32 Version;
	wchar_t	ServiceProviderName[60];  // key 0x1 120 bytes
	wchar_t	ProvisioningServerURL[64]; // key 0x2 128 bytes
	wchar_t	SupportInfo[64]; // key 0x3 128 bytes
	wchar_t	BootstrapServerURL[64]; // key 0x4 128 bytes
} XCONFIG_IPTV_SETTINGS, *PXCONFIG_IPTV_SETTINGS; // XConfigIPTVSettings; 512 bytes


/* **************************** _XCONFIG_MEDIA_CENTER_SETTINGS **************************** */
//XCONFIG_MEDIA_CENTER_ENTRIES
enum{
	XCONFIG_MEDIA_CENTER_DATA = 0x0,
	XCONFIG_MEDIA_CENTER_MEDIA_PLAYER = 0x1,
	XCONFIG_MEDIA_CENTER_XESLED_VERSION = 0x2,
	XCONFIG_MEDIA_CENTER_XESLED_TRUST_SECRET = 0x3,
	XCONFIG_MEDIA_CENTER_XESLED_TRUST_CODE = 0x4,
	XCONFIG_MEDIA_CENTER_XESLED_HOST_ID = 0x5,
	XCONFIG_MEDIA_CENTER_XESLED_KEY = 0x6,
	XCONFIG_MEDIA_CENTER_XESLED_HOST_MAC_ADDRESS = 0x7,
	XCONFIG_MEDIA_CENTER_SERVER_UUID = 0x8,
	XCONFIG_MEDIA_CENTER_SERVER_NAME = 0x9,
	XCONFIG_MEDIA_CENTER_SERVER_FLAG = 0xa,
	XCONFIG_MEDIA_ENTRIES_MAX = 0xb
};

// _XCONFIG_MEDIA_CENTER_SETTINGS macros for key pointers
#define XK_MC_1(x) &x.MediaPlayer			// key 0x1 20 bytes
#define XK_MC_2(x) &x.XeSledVersion			// key 0x2 10 bytes
#define XK_MC_3(x) &x.XeSledTrustSecret		// key 0x3 20 bytes
#define XK_MC_4(x) &x.XeSledTrustCode		// key 0x4 8 bytes
#define XK_MC_5(x) &x.XeSledHostID			// key 0x5 20 bytes
#define XK_MC_6(x) &x.XeSledKey				// key 0x6 1628 bytes
#define XK_MC_7(x) &x.XeSledHostMACAddress	// key 0x7 6 bytes
#define XK_MC_8(x) &x.ServerUUID			// key 0x8 16 bytes
#define XK_MC_9(x) &x.ServerName			// key 0x9 128 bytes
#define XK_MC_A(x) &x.ServerFlag			// key 0xa 4 bytes

typedef struct _XCONFIG_MEDIA_CENTER_SETTINGS{
	u32 CheckSum;
	u32 Version;
	char MediaPlayer[20];// key 0x1 20 bytes
	u8 XeSledVersion[10];// key 0x2 10 bytes
	u8 XeSledTrustSecret[20];// key 0x3 20 bytes
	u8 XeSledTrustCode[8];// key 0x4 8 bytes
	u8 XeSledHostID[20];// key 0x5 20 bytes
	u8 XeSledKey[1628];// key 0x6 1628 bytes
	u8 XeSledHostMACAddress[6];// key 0x7 6 bytes
	char ServerUUID[16];// key 0x8 16 bytes
	char ServerName[128]; // key 0x9 128 bytes
	char ServerFlag[4]; // key 0xa 4 bytes
} XCONFIG_MEDIA_CENTER_SETTINGS, *PXCONFIG_MEDIA_CENTER_SETTINGS; // XConfigMediaCenterSettings; 1868 bytes


/* **************************** _XCONFIG_SYSTEM_SETTINGS **************************** */
//XCONFIG_SYSTEM_ENTRIES
enum{
	XCONFIG_SYSTEM_ALL = 0x0,
	XCONFIG_SYSTEM_ALARM_TIME = 0x1,
	XCONFIG_SYSTEM_PREVIOUS_FLASH_VERSION = 0x2,
	XCONFIG_SYSTEM_ENTRIES_MAX = 0x3
};

// _XCONFIG_SYSTEM_SETTINGS macros for key pointers
#define XK_SYSTEM_1(x) &x.AlarmTime				// key 0x1  8 bytes
#define XK_SYSTEM_2(x) &x.PreviousFlashVersion	// key 0x2 4 bytes

typedef struct _XCONFIG_SYSTEM_SETTINGS{
	u32 Version;
	union _LARGE_INTEGER AlarmTime; // key 0x1  8 bytes
	u32 PreviousFlashVersion; // key 0x2 4 bytes
} XCONFIG_SYSTEM_SETTINGS, *PXCONFIG_SYSTEM_SETTINGS; // XConfigSystemSettings; 16 bytes


/* **************************** _XCONFIG_USER_SETTINGS **************************** */
//XCONFIG_USER_ENTRIES
enum{
	XCONFIG_USER_DATA = 0x0,
	XCONFIG_USER_TIME_ZONE_BIAS = 0x1,
	XCONFIG_USER_TIME_ZONE_STD_NAME = 0x2,
	XCONFIG_USER_TIME_ZONE_DLT_NAME = 0x3,
	XCONFIG_USER_TIME_ZONE_STD_DATE = 0x4,
	XCONFIG_USER_TIME_ZONE_DLT_DATE = 0x5,
	XCONFIG_USER_TIME_ZONE_STD_BIAS = 0x6,
	XCONFIG_USER_TIME_ZONE_DLT_BIAS = 0x7,
	XCONFIG_USER_DEFAULT_PROFILE = 0x8,
	XCONFIG_USER_LANGUAGE = 0x9,
	XCONFIG_USER_VIDEO_FLAGS = 0xa,
	XCONFIG_USER_AUDIO_FLAGS = 0xb,
	XCONFIG_USER_RETAIL_FLAGS = 0xc,
	XCONFIG_USER_DEVKIT_FLAGS = 0xd,
	XCONFIG_USER_COUNTRY = 0xe,
	XCONFIG_USER_PC_FLAGS = 0xf,
	XCONFIG_USER_SMB_CONFIG = 0x10,
	XCONFIG_USER_LIVE_PUID = 0x11,
	XCONFIG_USER_LIVE_CREDENTIALS = 0x12,
	XCONFIG_USER_AV_COMPOSITE_SCREENSZ = 0x13,
	XCONFIG_USER_AV_COMPONENT_SCREENSZ = 0x14,
	XCONFIG_USER_AV_VGA_SCREENSZ = 0x15,
	XCONFIG_USER_PC_GAME = 0x16,
	XCONFIG_USER_PC_PASSWORD = 0x17,
	XCONFIG_USER_PC_MOVIE = 0x18,
	XCONFIG_USER_PC_GAME_RATING = 0x19,
	XCONFIG_USER_PC_MOVIE_RATING = 0x1a,
	XCONFIG_USER_PC_HINT = 0x1b,
	XCONFIG_USER_PC_HINT_ANSWER = 0x1c,
	XCONFIG_USER_PC_OVERRIDE = 0x1d,
	XCONFIG_USER_MUSIC_PLAYBACK_MODE = 0x1e,
	XCONFIG_USER_MUSIC_VOLUME = 0x1f,
	XCONFIG_USER_MUSIC_FLAGS = 0x20,
	XCONFIG_USER_ARCADE_FLAGS = 0x21,
	XCONFIG_USER_PC_VERSION = 0x22,
	XCONFIG_USER_PC_TV = 0x23,
	XCONFIG_USER_PC_TV_RATING = 0x24,
	XCONFIG_USER_PC_EXPLICIT_VIDEO = 0x25,
	XCONFIG_USER_PC_EXPLICIT_VIDEO_RATING = 0x26,
	XCONFIG_USER_PC_UNRATED_VIDEO = 0x27,
	XCONFIG_USER_PC_UNRATED_VIDEO_RATING = 0x28,
	XCONFIG_USER_VIDEO_OUTPUT_BLACK_LEVELS = 0x29,
	XCONFIG_USER_VIDEO_PLAYER_DISPLAY_MODE = 0x2a,
	XCONFIG_USER_ALTERNATE_VIDEO_TIMING_ID = 0x2b,
	XCONFIG_USER_VIDEO_DRIVER_OPTIONS = 0x2c,
	XCONFIG_USER_MUSIC_UI_FLAGS = 0x2d,
	XCONFIG_USER_VIDEO_MEDIA_SOURCE_TYPE = 0x2e,
	XCONFIG_USER_MUSIC_MEDIA_SOURCE_TYPE = 0x2f,
	XCONFIG_USER_PHOTO_MEDIA_SOURCE_TYPE = 0x30,
	XCONFIG_USER_ENTRIES_MAX = 0x31
};

// _XCONFIG_USER_SETTINGS macros for key pointers
#define XK_USER_1(x) &x.TimeZoneBias				// key 0x1 4 bytes
#define XK_USER_2(x) &x.TimeZoneStdName				// key 0x2 4 bytes
#define XK_USER_3(x) &x.TimeZoneDltName				// key 0x3 4 bytes
#define XK_USER_4(x) &x.TimeZoneStdDate				// key 0x4 4 bytes
#define XK_USER_5(x) &x.TimeZoneDltDate				// key 0x5 4 bytes
#define XK_USER_6(x) &x.TimeZoneStdBias				// key 0x6 4 bytes
#define XK_USER_7(x) &x.TimeZoneDltBias				// key 0x7 4 bytes
#define XK_USER_8(x) &x.DefaultProfile				// key 0x8 8 bytes
#define XK_USER_9(x) &x.Language					// key 0x9 4 bytes
#define XK_USER_A(x) &x.VideoFlags					// key 0xa 4 bytes
#define XK_USER_B(x) &x.AudioFlags					// key 0xb 4 bytes
#define XK_USER_C(x) &x.RetailFlags					// key 0xc 4 bytes
#define XK_USER_D(x) &x.DevkitFlags					// key 0xd 4  bytes
#define XK_USER_E(x) &x.Country						// key 0xe 1 bytes
#define XK_USER_F(x) &x.ParentalControlFlags		// key 0xf 1 bytes
#define XK_USER_10(x) &x.SMBConfig					// key 0x10 256 bytes
#define XK_USER_11(x) &x.LivePUID					// key 0x11 8 bytes
#define XK_USER_12(x) &x.LiveCredentials			// key 0x12 16 bytes
#define XK_USER_13(x) &x.AvPackHDMIScreenSz			// key 0x13 4 bytes
#define XK_USER_14(x) &x.AvPackComponentScreenSz	// key 0x14 4 bytes
#define XK_USER_15(x) &x.AvPackVGAScreenSz			// key 0x15 4 bytes
#define XK_USER_16(x) &x.ParentalControlGame		// key 0x16 4 bytes
#define XK_USER_17(x) &x.ParentalControlPassword	// key 0x17 4 bytes
#define XK_USER_18(x) &x.ParentalControlMovie		// key 0x18 4 bytes
#define XK_USER_19(x) &x.ParentalControlGameRating	// key 0x19 4 bytes
#define XK_USER_1A(x) &x.ParentalControlMovieRating	// key 0x1a 4 bytes
#define XK_USER_1B(x) &x.ParentalControlHint		// key 0x1b 1 bytes
#define XK_USER_1C(x) &x.ParentalControlHintAnswer	// key 0x1c 32 bytes
#define XK_USER_1D(x) &x.ParentalControlOverride	// key 0x1d 32  bytes
#define XK_USER_1E(x) &x.MusicPlaybackMode			// key 0x1e 4 bytes
#define XK_USER_1F(x) &x.MusicVolume				// key 0x1f 4 bytes
#define XK_USER_20(x) &x.MusicFlags					// key 0x20 4 bytes
#define XK_USER_21(x) &x.ArcadeFlags				// key 0x21 4 bytes
#define XK_USER_22(x) &x.ParentalControlVersion		// key 0x22 4 bytes
#define XK_USER_23(x) &x.ParentalControlTV			// key 0x23 4 bytes
#define XK_USER_24(x) &x.ParentalControlTVRating	// key 0x24 4 bytes
#define XK_USER_25(x) &x.ParentalControlExplicitVideo// key 0x25 4 bytes
#define XK_USER_26(x) &x.ParentalControlExplicitVideoRating// key 0x26 4 bytes
#define XK_USER_27(x) &x.ParentalControlUnratedVideo// key 0x27 4 bytes
#define XK_USER_28(x) &x.ParentalControlUnratedVideoRating// key 0x28 4 bytes
#define XK_USER_29(x) &x.VideoOutputBlackLevels		// key 0x29 4 bytes
#define XK_USER_2A(x) &x.VideoPlayerDisplayMode		// key 0x2a 1 bytes
#define XK_USER_2B(x) &x.AlternateVideoTimingIDs	// key 0x2b 4 bytes
#define XK_USER_2C(x) &x.VideoDriverOptions			// key 0x2c 4 bytes
#define XK_USER_2D(x) &x.MusicUIFlags				// key 0x2d 4 bytes
#define XK_USER_2E(x) &x.VideoMediaSourceType		// key 0x2e 1 bytes
#define XK_USER_2F(x) &x.MusicMediaSourceType		// key 0x2f 1 bytes
#define XK_USER_30(x) &x.PhotoMediaSourceType		// key 0x30 1 bytes

typedef struct _XCONFIG_TIMEZONE_DATE{ // used by _XCONFIG_USER_SETTINGS
	u8 Month;
	u8 Day;
	u8 DayOfWeek;
	u8 Hour;
} XCONFIG_TIMEZONE_DATE, *PXCONFIG_TIMEZONE_DATE;

typedef struct _XCONFIG_USER_SETTINGS{
	u32 CheckSum;
	u32 Version;
	u32 TimeZoneBias; // key 0x1 4 bytes
	char TimeZoneStdName[4];// key 0x2 4 bytes
	char TimeZoneDltName[4];// key 0x3 4 bytes
	XCONFIG_TIMEZONE_DATE TimeZoneStdDate;// key 0x4 4 bytes
	XCONFIG_TIMEZONE_DATE TimeZoneDltDate;// key 0x5 4 bytes
	u32 TimeZoneStdBias;// key 0x6 4 bytes
	u32 TimeZoneDltBias;// key 0x7 4 bytes
	u64 DefaultProfile;// key 0x8 8 bytes
	u32 Language;// key 0x9 4 bytes
	u32 VideoFlags;// key 0xa 4 bytes
	u32 AudioFlags;// key 0xb 4 bytes
	u32 RetailFlags;// key 0xc 4 bytes
	u32 DevkitFlags;// key 0xd 4 bytes
	char Country;// key 0xe 1 bytes
	char ParentalControlFlags;// key 0xf 1 bytes
	u8 ReservedFlags[2];
	char SMBConfig[256];// key 0x10 256 bytes
	u64 LivePUID;// key 0x11 8 bytes
	char LiveCredentials[16];// key 0x12 16 bytes
	s16 AvPackHDMIScreenSz[2];// key 0x13 4 bytes
	s16 AvPackComponentScreenSz[2];// key 0x14 4 bytes
	s16 AvPackVGAScreenSz[2];// key 0x15 4 bytes (1440x900? = 0780 fbc8)
	u32 ParentalControlGame;// key 0x16 4 bytes
	u32 ParentalControlPassword;// key 0x17 4 bytes
	u32 ParentalControlMovie;// key 0x18 4 bytes
	u32 ParentalControlGameRating;// key 0x19 4 bytes
	u32 ParentalControlMovieRating;// key 0x1a 4 bytes
	char ParentalControlHint;// key 0x1b 1 bytes
	char ParentalControlHintAnswer[32];// key 0x1c 32 bytes
	char ParentalControlOverride[32];// key 0x1d 32  bytes
	u32 MusicPlaybackMode;// key 0x1e 4 bytes
	s32 MusicVolume;// key 0x1f 4 bytes
	u32 MusicFlags;// key 0x20 4 bytes
	u32 ArcadeFlags;// key 0x21 4 bytes
	u32 ParentalControlVersion;// key 0x22 4 bytes
	u32 ParentalControlTV;// key 0x23 4 bytes
	u32 ParentalControlTVRating;// key 0x24 4 bytes
	u32 ParentalControlExplicitVideo;// key 0x25 4 bytes
	u32 ParentalControlExplicitVideoRating;// key 0x26 4 bytes
	u32 ParentalControlUnratedVideo;// key 0x27 4 bytes
	u32 ParentalControlUnratedVideoRating;// key 0x28 4 bytes
	u32 VideoOutputBlackLevels;// key 0x29 4 bytes
	u8 VideoPlayerDisplayMode;// key 0x2a 1 bytes
	u32 AlternateVideoTimingIDs;// key 0x2b 4 bytes
	u32 VideoDriverOptions;// key 0x2c 4 bytes
	u32 MusicUIFlags;// key 0x2d 4 bytes
	char VideoMediaSourceType;// key 0x2e 1 bytes
	char MusicMediaSourceType;// key 0x2f 1 bytes
	char PhotoMediaSourceType;// key 0x30 1 bytes
} XCONFIG_USER_SETTINGS, *PXCONFIG_USER_SETTINGS; // XConfigUserSettings; 509 bytes


/* **************************** _XCONFIG_XNET_SETTINGS **************************** */
//XCONFIG_XNET_ENTRIES
enum{
	XCONFIG_XNET_ALL = 0x0,
	XCONFIG_XNET_DATA = 0x1,
	XCONFIG_XNET_ENTRIES_MAX = 0x2
};

// _XCONFIG_XNET_SETTINGS macros for key pointers
#define XK_XNET_1(x) &x.Data // key 0x01 492 bytes

typedef struct _XCONFIG_XNET_SETTINGS{
	u32 version;
	u8 Data[492]; // key 0x01 492 bytes
} XCONFIG_XNET_SETTINGS, *PXCONFIG_XNET_SETTINGS; // 496 bytes


/* **************************** _XCONFIG_STATISTIC_SETTINGS **************************** */
//XCONFIG_STATISTIC_ENTRIES
enum{
	XCONFIG_STATISTICS_DATA = 0x0,
	XCONFIG_STATISTICS_XUID_MAC_ADDRESS = 0x1,
	XCONFIG_STATISTICS_XUID_COUNT = 0x2,
	XCONFIG_STATISTICS_ODD_FAILURES = 0x3,
	XCONFIG_STATISTICS_HDD_SMART_DATA = 0x4,
	XCONFIG_STATISTICS_UEM_ERRORS = 0x5,
	XCONFIG_STATISTICS_FPM_ERRORS = 0x6,
	XCONFIG_STATISTICS_LAST_REPORT_TIME = 0x7,
	XCONFIG_STATISTICS_BUG_CHECK_DATA = 0x8,
	XCONFIG_STATISTICS_TEMPERATURE = 0x9,
	XCONFIG_STATISTICS_ENTRIES_MAX = 0xa
};

// _XCONFIG_STATISTIC_SETTINGS macros for key pointers
#define XK_STATISTIC_1(x) &x.XUIDMACAddress		// key 0x1 6 bytes
#define XK_STATISTIC_2(x) &x.XUIDCount			// key 0x2 4 bytes
#define XK_STATISTIC_3(x) &x.ODDFailures		// key 0x3 32 bytes
#define XK_STATISTIC_4(x) &x.HDDSmartData		// key 0x4 512 bytes
#define XK_STATISTIC_5(x) &x.UEMErrors			// key 0x5 100 bytes
#define XK_STATISTIC_6(x) &x.FPMErrors			// key 0x6 56 bytes - 9199 increased 0x38 to 0x60
#define XK_STATISTIC_7(x) &x.LastReportTime		// key 0x7 8 bytes
#define XK_STATISTIC_8(x) &x.BugCheckData		// key 0x8 101 bytes 
#define XK_STATISTIC_9(x) &x.TemperatureData	// key 0x9 200 bytes

typedef struct _XCONFIG_STATISTIC_SETTINGS{
	u32 CheckSum;
	u32 Version;
	char XUIDMACAddress[6]; // key 0x1 6 bytes
	char Reserved[2];
	u32 XUIDCount;// key 0x2 4 bytes
	u8 ODDFailures[32];// key 0x3 32 bytes
	u8 BugCheckData[101];// key 0x8 101  bytes
	u8 TemperatureData[200];// key 0x9 200 bytes
	char Unused[467];
	char HDDSmartData[512];// key 0x4 512 bytes
	char UEMErrors[100];// key 0x5 100 bytes
	char FPMErrors[96];// key 0x6 56 bytes/96 bytes 9199
	u64 LastReportTime;// key 0x7 8 bytes
} XCONFIG_STATISTIC_SETTINGS, *PXCONFIG_STATISTIC_SETTINGS; // XConfigStatisticSettings; 1496 bytes


/* **************************** _XCONFIG_STATIC_SETTINGS **************************** */
//XCONFIG_STATIC_ENTRIES
enum{
	XCONFIG_STATIC_DATA = 0x0,
	XCONFIG_STATIC_FIRST_POWER_ON_DATE = 0x1,
	XCONFIG_STATIC_SMC_CONFIG = 0x2,
	XCONFIG_STATIC_ENTRIES_MAX = 0x3
};

// _XCONFIG_STATIC_SETTINGS macros for key pointers
#define XK_STATIC_1(x) &x.FirstPowerOnDate // key 0x1 5 bytes
#define XK_STATIC_2(x) &x.SMCConfig // key 0x2 256 bytes

typedef struct _FanOverride{ // used by _XCONFIG_STATIC_SETTINGS // 01111111 <- normally disabled as 0x7F
	u8 Enable : 1; // says 7 is bit 0
	u8 Speed : 7; // says 0 bit 7
} FanOverride, *PFanOverride; // 1 byte

typedef struct _TempCalData{ // used by _XCONFIG_STATIC_SETTINGS
	u16 Gain;
	u16 Offset; 
} TempCalData, *PTempCalData; // 4 bytes

typedef struct _Temperature{ // used by _XCONFIG_STATIC_SETTINGS
	TempCalData Cpu;
	TempCalData Gpu;
	TempCalData Edram;
	TempCalData Board; // 16 bytes
} Temperature, *PTemperature;

typedef struct _Thermal{ // used by _XCONFIG_STATIC_SETTINGS
	u8 Cpu;
	u8 Gpu;
	u8 Edram; // 3 bytes
} Thermal, *PThermal;

typedef struct _Viper{ // used by _XCONFIG_STATIC_SETTINGS
	u8 GpuVoltageNotSetting : 1; // bit 7
	u8 MemoryVoltageNotSetting : 1; // bit 6 (bit 5 thru 0 unused
	//u8 unknown : 6; // 1 byte
	u8 GpuTarget;
	u8 MemoryTarget;
	u8 CheckSum;	
} Viper, *PViper; // 4 bytes

typedef struct _ThermalCalData{ // used by _XCONFIG_STATIC_SETTINGS
	Temperature therm; // 16 bytes
	char AnaFuseValue;
	Thermal SetPoint; // 3 bytes
	Thermal Overload; // 3 bytes
} ThermalCalData, *PThermalCalData;

typedef struct _SMCBlock{ // STATIC key 0x2 256 bytes // used by _XCONFIG_STATIC_SETTINGS
	u8 StructureVersion;
	u8 ConfigSource;
	char ClockSelect;
	FanOverride fanOrCpu; // 1 byte
	FanOverride fanOrGpu; // 1 byte
	char pad1[1];
	char unknownBits : 2;// 1 byte total for this bitfield
	char ScreenToolExecutionCount : 2;
	char ScreenToolFinished : 1;
	char ScreenToolStarted : 1;
	char UseTempCalDefaults : 1;
	char RadioEnable : 1; 
	char pad2[3];
	ThermalCalData mainTemp; // 23 bytes
	u8 pad3[1];
	Viper vFlags;
	u8 pad4[190];
	ThermalCalData backupTemp; // 23 bytes
	u8 pad5[3];
	u8 DoNotUse[2];
} SMCBlock, *PSMCBlock;

typedef struct _XCONFIG_STATIC_SETTINGS{
	u32 CheckSum; // *** see below ***
	u32 Version;
	char FirstPowerOnDate[5]; // key 0x1 5 bytes
	char reserved;
	SMCBlock SMCConfig;  // key 0x2 256 bytes
} XCONFIG_STATIC_SETTINGS, *PXCONFIG_STATIC_SETTINGS; // XConfigStaticSettings; 270 bytes

#pragma warning(pop)  // unnamed struct/union
#pragma pack(pop)

// this and internal SMCBlock checksums seem to be the only ones used at this point
//
// use this to calculate XCONFIG_STATIC_SETTINGS.CheckSum
// where data is a BYTE pointer to the full XCONFIG_STATIC_SETTINGS struct
//UINT XConfigStaticMainChecksumCalc(PBYTE data)
//{
//	UINT i, len, sum = 0;
//	data += 0x10;
//	for(i=0, len=252; i<len; i++)
//		sum += data[i]&0xFF;
//	sum = (~sum)&0xFFFF;
//	return ((sum&0xFF00)<<8)+((sum&0xFF)<<24);
//}

#endif // _XCONFIG_H

from pastebin.com, not marked private:

	struct MacAccount {
		UINT    ServiceID;
		in_addr ServiceAddress;
		USHORT  ServicePort;
		USHORT  Flags;
		char    ConsoleId[16]; // "XE.{ConsoleID}"
		char    OnlineDomain[20]; // "xbox.com"
		char    OnlineKerberosRealm[24]; // "PASSPORT.NET"
		BYTE    OnlineKey[16];
		BYTE    Padding[376];
	};

	struct EncryptedMacAccount {
		BYTE			Digest[0x14];
		BYTE			Confounder[0x08];
		MacAccount	Account;
	};

	BOOL GetMachineAccount(MacAccount* Account) {
		
		// Get our setting
		int settingCategory = 0x04;
		EncryptedMacAccount ea; USHORT sizeOut;
		if(!NT_SUCCESS(ExGetXConfigSetting((USHORT)settingCategory, 1, 
			(BYTE*)&ea, sizeof(EncryptedMacAccount), &sizeOut))) {
			return FALSE;
		}

		// Get our key for RC4
		BYTE key[0x14];
		if(!NT_SUCCESS(XeKeysHmacSha(0x17, ea.Confounder, 8, 
			(BYTE*)&settingCategory, sizeof(int), NULL, NULL, key, 0x14))) {
			return FALSE;
		}

		// Decrypt
		if(!NT_SUCCESS(XeCryptRc4(key, 0x14, (BYTE*)&ea.Account, sizeof(MacAccount)))) {
			return FALSE;
		}

		// Now lets check our hash to make sure we did it right
		BYTE hash[0x14];
		if(!NT_SUCCESS(XeCryptSha(ea.Confounder, sizeof(ea.Confounder), 
			(BYTE*)&ea.Account, sizeof(MacAccount), NULL, NULL, hash, 0x14))) {
			return FALSE;
		}

		// Compare our hash
		if(memcmp(hash, ea.Digest, 0x14) != 0)
			return FALSE;

		// Alright its a good account lets copy
		memcpy(Account, &ea.Account, sizeof(MacAccount));
		return TRUE;
	}

"XCONFIG_XNET_MACHINE_ACCOUNT_CATEGORY"
encrypted data at entry 0 and 1 using HMAC-SHA, data matches except entry 0 has version field in front of data (00000001)
digest used for HMAC-SHA is at 0x0 (0x4 for entry 0), confounder is at 0x14 (0x18 entry 0) data encrypted using XeKey 0x17
!!!BE CAREFUL WHILE WRITING IT!!!
entry 0 and entry 1 must match, so be sure to write the data to entry 1 and then 0x00000001 + data to entry 0
if they don't match, xbox will blank out both entries
doesn't actually seem to be used in live auth at all
FUN FACT: XeKey 0x17 is (possibly?) stored in KV, so if you swapped keyvaults at all it won't decrypt properly

"XCONFIG_XNET_PARAMETERS_CATEGORY"
looks the same as MACHINE_ACCOUNT, but encrypted with different key/method?

if your impatient and need more, pastebin is a good friend :)