In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

/shared2/sys/net/02/config.dat: Difference between revisions

From WiiBrew
< /shared2 | sys | net | 02
Jump to navigation Jump to search
Suloku (talk | contribs)
No edit summary
Suloku (talk | contribs)
No edit summary
Line 2: Line 2:


<source lang="C">
<source lang="C">
typedef struct _netconfig
{
    u8 header[8];          //all 0x00 and 0x04 set to 0x01 when there's at least one valid conection to internet.
                          //It's the only change i've seen in the header
    connection_t connection[3];
}netconfig_t;
</source>
Where <code>connection</code> is defined as:
<source lang="C">
typedef struct _proxy
{
u8 use_proxy;            //0x00 -> no proxy //0x01 use proxy
u8 use_proxy_userandpass //0x00 -> don't use user and password //0x01 use user and password
u8 padding_1[2] //0x00
u8 proxy_name[255];
u8 padding_2; //0x00
u16 proxy_port; // 0-34463 range
u8 proxy_username[32];
u8 padding_3; //0x00
u8 proxy_password[32];
}proxy_t;
typedef struct _connection
typedef struct _connection
{
{
/*
/*
u8 selected is 8 flags:
u8 selected is 8 flags:
 
  Connection selected  
  1->Connection selected  
   |  Internet test passed
   |  1->Internet test passed
   |  |
   |  |
   1 0 1 0  0 1 1 0
   1 0 1 0  0 1 1 0
         |    | | |
         |    | | |
         |    | | 0->wireless 1-> wired
         |    | | 0->wireless 1-> wired (lan)
         |    | Automatic DNS
         |    | 1->DHCP DNS
         | Automatic IP
         | 1->DHCP IP
         |
         |
       1->use proxy
       1->use proxy
 
A manual settings wireless connection without proxy looks like 1 0 1 0 0 0 0 0
A manual settings wireless connection without proxy looks like 1 0 1 0 0 0 0 0
 
*/
*/
     u8 selected;
     u8 selected;
u8 padding_1[3];
u8 padding_1[3];
u8 ip[4]//wii ip adress
u8 ip[4];//wii ip adress
u8 netmask[4];
u8 netmask[4];
u8 gateway[4];
u8 gateway[4];
u8 dns1[4];
u8 dns1[4];
u8 dns2[4];
u8 dns2[4];
u8 padding_2[2]
u8 padding_2[2];
u16 mtu; //valid values are 0 and 576-1500 range
u16 mtu; //valid values are 0 and 576-1500 range
     u8 padding_3[8]; // 0x00 padding?
     u8 padding_3[8]; // 0x00 padding?
u8 use_proxy;            //0x00 -> no proxy //0x01 use proxy
u8 use_proxy_userandpass; //0x00 -> don't use user and password //0x01 use user and password
u8 padding_p1[2]; //0x00
u8 proxy_name[255];
u8 padding_p2; //0x00
u16 proxy_port; // 0-34463 range
u8 proxy_username[32];
u8 padding_p3; //0x00
u8 proxy_password[32];
proxy_t proxy_settings;
u8 padding_4; //0x00
u8 padding_4; //0x00
proxy_t proxy_settings_copy; //for some reason the proxy settings are duplicated
 
//This is a copy of the proxy settings
u8 use_proxy_copy;            //0x00 -> no proxy //0x01 use proxy
u8 use_proxy_userandpass_copy; //0x00 -> don't use user and password //0x01 use user and password
u8 padding_p1_copy[2]; //0x00
u8 proxy_name_copy[255];
u8 padding_p2_copy; //0x00
u16 proxy_port_copy; // 0-34463 range
u8 proxy_username_copy[32];
u8 padding_p3_copy; //0x00
u8 proxy_password_copy[32];
u8 padding_5[1297]; //0x00
u8 padding_5[1297]; //0x00
 
//Start of wireless only settings
//Start of wireless only settings
     u8 ssid[32]; // Access Point name.
     u8 ssid[32]; // Access Point name.
   
   

Revision as of 21:07, 8 August 2009

This file contains the Wii's Internet connection configuration. It is composed of an 8-byte header and 3 connection entries of 0x91C each.

typedef struct _connection
{
/*
u8 selected is 8 flags:
 
 1->Connection selected 
   |  1->Internet test passed
   |   |
   1 0 1 0  0 1 1 0
         |    | | |
         |    | | 0->wireless 1-> wired (lan)
         |    | 1->DHCP DNS
         | 1->DHCP IP
         |
       1->use proxy
 
A manual settings wireless connection without proxy looks like 1 0 1 0 0 0 0 0
 
*/
    u8 selected;
 
	u8 padding_1[3];
 
	u8 ip[4];//wii ip adress
	u8 netmask[4];
	u8 gateway[4];
	u8 dns1[4];
	u8 dns2[4];
 
	u8 padding_2[2];
	u16 mtu; //valid values are 0 and 576-1500 range
 
    u8 padding_3[8];	// 0x00 padding?
 
	u8 use_proxy;            //0x00 -> no proxy //0x01 use proxy
	u8 use_proxy_userandpass; //0x00 -> don't use user and password //0x01 use user and password
 
	u8 padding_p1[2]; //0x00
 
	u8 proxy_name[255];
	u8 padding_p2; //0x00
	u16 proxy_port; // 0-34463 range
	u8 proxy_username[32];
	u8 padding_p3; //0x00
	u8 proxy_password[32];
	
	u8 padding_4; //0x00
	
//This is a copy of the proxy settings	
	u8 use_proxy_copy;            //0x00 -> no proxy //0x01 use proxy
	u8 use_proxy_userandpass_copy; //0x00 -> don't use user and password //0x01 use user and password
 
	u8 padding_p1_copy[2]; //0x00
 
	u8 proxy_name_copy[255];
	u8 padding_p2_copy; //0x00
	u16 proxy_port_copy; // 0-34463 range
	u8 proxy_username_copy[32];
	u8 padding_p3_copy; //0x00
	u8 proxy_password_copy[32];
 
	u8 padding_5[1297]; //0x00	
 
//Start of wireless only settings
 
    u8 ssid[32];		// Access Point name.
 
    u8 padding_6;		// 0x00
    u8 ssid_length;		// length of ssid[] (AP name) in bytes.
    u8 padding_7[2];		// 0x00
 
    u8 padding_8;		// 0x00
    u8 encryption;		// (Probably) Encryption.  OPN: 0x00, WEP64: 0x01, WEP128: 0x02 WPA-PSK (TKIP): 0x04, WPA2-PSK (AES): 0x05, WPA-PSK (AES): 0x06
    u8 padding_9[2];		// 0x00
 
    u8 padding_10;		// 0x00
    u8 key_length;		// length of key[] (encryption key) in bytes.
						// for WEP it's 0x00
    u8 padding_11[2];		// 0x00
 
    u8 key[64];		// Encryption key
					//For a WEP key, they key is repeated 4 times (52 bytes) then padded with zeroes
 
    u8 padding_12[236];		// 0x00
}connection_t;

Wired connections follow the same structure, except all related to ssid, encryption and keys is set to 0x00.

Note that all the paddings are a guess. Also, this all obtained by modifying ONLY the top wii connection (connection 1) while being the other two erassed (thus connection 1 and 2 are all set to 0x00).

More research is needed with this file.