From WiiBrew
< /shared2‎ | sys‎ | net‎ | 02
Jump to: navigation, search

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 _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];

Where connection is defined as:

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];

typedef struct _connection
u8 selected is 8 flags:

 Connection selected 
   |  Internet test passed
   |   |
   1 0 1 0  0 1 1 0
         |    | | |
         |    | | 0->wireless 1-> wired
         |    | Automatic DNS
         | Automatic 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?
	proxy_t proxy_settings;
	u8 padding_4; //0x00
	proxy_t proxy_settings_copy; //for some reason the proxy settings are duplicated

	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

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.