Changes

58 bytes removed ,  02:58, 21 November 2010
Line 20: Line 20:  
=== Beacon payload format ===
 
=== Beacon payload format ===
   −
The NZone beacon payload are encrypted with an XOR pad. It's not the trivial sequential XOR code. The XOR pad is generated from a 8-byte key: the first 4-bytes is "!SDW",(might be a reference to [http://en.wikipedia.org/wiki/Wireless_Distribution_System WDS]?) the last 4 bytes are the last 4 bytes of the beacon BSSID MAC. Nintendo Spot uses the same special beacon encryption, the cleartext differs from NZone slightly for the unknown fields.
+
The NZone beacon payload is encrypted with an XOR pad. It's not the trivial sequential XOR code. The XOR pad is generated from a 8-byte key: the first 4-bytes is "!SDW",(might be a reference to [http://en.wikipedia.org/wiki/Wireless_Distribution_System WDS]?) the last 4 bytes are the last 4 bytes of the beacon BSSID MAC. Nintendo Spot uses the same special beacon encryption, the cleartext differs from NZone slightly for the unknown fields.
 
This table is the format of the cleartext data.
 
This table is the format of the cleartext data.
 
The NZone beacon code is contained in TWL SDK, arm9 side. DSi opera web browser automatically connects to NZone APs, all official DSi software automatically connects to NZone APs. NZone has a option to install a wifi config entry for the NZone AP, for old NTR SDK games run from cards.
 
The NZone beacon code is contained in TWL SDK, arm9 side. DSi opera web browser automatically connects to NZone APs, all official DSi software automatically connects to NZone APs. NZone has a option to install a wifi config entry for the NZone AP, for old NTR SDK games run from cards.
TWL SDK probably scans for beacons, checks if beacon_type is 0 or 1, and checks if the payload length is 0x70. If those succeed, it then decrypts the whole payload and verifies the checksum. When the checksum is valid, NZone is detected.
+
TWL SDK scans for beacons with the Nintendo tag(0xDD) with payload size 0x70. When those are found, it decrypts them and verifies the checksum, when that's valid NZone is detected.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"