<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Shaunathan</id>
	<title>3dbrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Shaunathan"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/Shaunathan"/>
	<updated>2026-04-15T03:48:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=3DSExplorer&amp;diff=1321</id>
		<title>3DSExplorer</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=3DSExplorer&amp;diff=1321"/>
		<updated>2011-09-28T00:20:37Z</updated>

		<summary type="html">&lt;p&gt;Shaunathan: /* Change log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox homebrew&lt;br /&gt;
| title       = 3DSExplorer&lt;br /&gt;
| image       = &lt;br /&gt;
| type        = system tool&lt;br /&gt;
| author      = [[User:Elisherer|elisherer]]&lt;br /&gt;
| download    = http://3dsexplorer.googlecode.com/files/3DSExplorer-v0.52.rar&lt;br /&gt;
| source = http://code.google.com/p/3dsexplorer/&lt;br /&gt;
| version     = 0.52&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
3DSExplorer can open 3DS files and view the information as described 3DBrew.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Open 3ds (CCI) files&lt;br /&gt;
&lt;br /&gt;
SaveFlash (bin) files (decrypted or encrypted)&lt;br /&gt;
&lt;br /&gt;
Title meta data files (tmd).&lt;br /&gt;
&lt;br /&gt;
== Change log ==&lt;br /&gt;
&lt;br /&gt;
v0.52&lt;br /&gt;
* TMD now works&lt;br /&gt;
* Save opening was improved&lt;br /&gt;
* No question rather it&#039;s encrypted or not (autodetect)&lt;br /&gt;
&lt;br /&gt;
v0.51&lt;br /&gt;
* fix for save files from save image&lt;br /&gt;
* feature: save image file from sav binary&lt;br /&gt;
&lt;br /&gt;
v0.5&lt;br /&gt;
* new GUI now has file box&lt;br /&gt;
* fix for a few save files&lt;br /&gt;
* now can save files from save and 3ds (from 3ds still encrypted) by double clicking a file.&lt;br /&gt;
* when opening a crypted save you can save the key to a file&lt;br /&gt;
* now on google code using SVN (moved from github)&lt;br /&gt;
&lt;br /&gt;
v0.3&lt;br /&gt;
* changed the name of the application&lt;br /&gt;
* initial work on opening save binary files&lt;br /&gt;
* already opens save binary files, decrypts them and shows some info&lt;br /&gt;
&lt;br /&gt;
* I&#039;ll be happy to get some help from you guys on this...&lt;br /&gt;
&lt;br /&gt;
v0.1&lt;br /&gt;
* opens 3DS files and creates a treeview with the information&lt;br /&gt;
* can&#039;t decrypt the ExeFS (as no key yet to be found)&lt;br /&gt;
&lt;br /&gt;
== Screen shot ==&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 3dsexplorer.png]]&lt;/div&gt;</summary>
		<author><name>Shaunathan</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=CXI&amp;diff=1301</id>
		<title>CXI</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=CXI&amp;diff=1301"/>
		<updated>2011-09-20T01:43:45Z</updated>

		<summary type="html">&lt;p&gt;Shaunathan: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following text tries to document the structure of the CTR Executable Image (CXI) format.&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
A CXI file contains the &#039;application&#039; program code, which runs on a single ARM11 core. It can communicate through SVC calls with the other ARM11 core running the &#039;system&#039; program code. For reasons of clarity, the ARM11 cores will sometimes be called the &#039;appcore&#039; and &#039;syscore&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
The CXI file format contains application ARM11 code, the menu icon, the menu 3D model, and an embedded read-only (ROM) filesystem for external filestorage. In fact, the application ARM11 code, menu icon, and menu 3D model are embedded into its own filesystem too, called the ExeFS.&lt;br /&gt;
&lt;br /&gt;
More specifically, the CXI file format is structured in the following order:&lt;br /&gt;
* first an NCCH header,&lt;br /&gt;
* followed by an extended header, &lt;br /&gt;
* followed by a plain binary region,&lt;br /&gt;
* followed by an embedded executable filesystem (ExeFS),&lt;br /&gt;
* and finally followed by a read-only filesystem (RomFS).&lt;br /&gt;
&lt;br /&gt;
The extended header contains additional information regarding access control. &lt;br /&gt;
The plain binary region is an area specifically stored in plaintext, mostly containing SDK library strings for identification.&lt;br /&gt;
&lt;br /&gt;
The extended header, the ExeFS and the RomFS are encrypted using 128-bit AES CTR. &lt;br /&gt;
&lt;br /&gt;
By default encrypted regions are compressed with an LZ77 variant, then encrypted. The spec allows for both unencrypted and uncompressed regions to exist. System titles expect a fixed system key.&lt;br /&gt;
&lt;br /&gt;
=== NCCH Header ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  OFFSET&lt;br /&gt;
!  SIZE&lt;br /&gt;
!  DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|  0x000&lt;br /&gt;
|  0x100&lt;br /&gt;
|  RSA-2048 signature of the NCCH header, using SHA-256.&lt;br /&gt;
|-&lt;br /&gt;
|  0x100&lt;br /&gt;
|  4&lt;br /&gt;
|  Magic ID, always &#039;NCCH&#039;&lt;br /&gt;
|-&lt;br /&gt;
|  0x104&lt;br /&gt;
|  4&lt;br /&gt;
|  Content size, in media units (1 media unit = 0x200 bytes)&lt;br /&gt;
|-&lt;br /&gt;
|  0x108&lt;br /&gt;
|  8&lt;br /&gt;
|  Partition ID&lt;br /&gt;
|-&lt;br /&gt;
|  0x110&lt;br /&gt;
|  2&lt;br /&gt;
|  Maker code&lt;br /&gt;
|-&lt;br /&gt;
|  0x112&lt;br /&gt;
|  2&lt;br /&gt;
|  Version&lt;br /&gt;
|-&lt;br /&gt;
|  0x114&lt;br /&gt;
|  4&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x118&lt;br /&gt;
|  8&lt;br /&gt;
|  Program ID&lt;br /&gt;
|-&lt;br /&gt;
|  0x120&lt;br /&gt;
|  1&lt;br /&gt;
|  Temp flag&lt;br /&gt;
|-&lt;br /&gt;
|  0x121&lt;br /&gt;
|  0x2F&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x150&lt;br /&gt;
|  0x10&lt;br /&gt;
|  Product code&lt;br /&gt;
|-&lt;br /&gt;
|  0x160&lt;br /&gt;
|  0x20&lt;br /&gt;
|  Extended header hash&lt;br /&gt;
|-&lt;br /&gt;
|  0x180&lt;br /&gt;
|  4&lt;br /&gt;
|  Extended header size&lt;br /&gt;
|-&lt;br /&gt;
|  0x184&lt;br /&gt;
|  4&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x188&lt;br /&gt;
|  8&lt;br /&gt;
|  Flags: byte[5]-byte[7] indicate content type ( system update, application, ... ) size of media unit ( 512*2^byte[6] ) and encryption.&lt;br /&gt;
|-&lt;br /&gt;
|  0x190&lt;br /&gt;
|  4&lt;br /&gt;
|  Plain region offset, in media units&lt;br /&gt;
|-&lt;br /&gt;
|  0x194&lt;br /&gt;
|  4&lt;br /&gt;
|  Plain region size, in media units&lt;br /&gt;
|-&lt;br /&gt;
|  0x198&lt;br /&gt;
|  8&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x1A0&lt;br /&gt;
|  4&lt;br /&gt;
|  ExeFS offset, in media units&lt;br /&gt;
|-&lt;br /&gt;
|  0x1A4&lt;br /&gt;
|  4&lt;br /&gt;
|  ExeFS size, in media units&lt;br /&gt;
|-&lt;br /&gt;
|  0x1A8&lt;br /&gt;
|  4&lt;br /&gt;
|  ExeFS hash region size, in media units&lt;br /&gt;
|-&lt;br /&gt;
|  0x1AC&lt;br /&gt;
|  4&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x1B0&lt;br /&gt;
|  4&lt;br /&gt;
|  RomFS offset, in media units&lt;br /&gt;
|-&lt;br /&gt;
|  0x1B4&lt;br /&gt;
|  4&lt;br /&gt;
|  RomFS size, in media units&lt;br /&gt;
|-&lt;br /&gt;
|  0x1B8&lt;br /&gt;
|  4&lt;br /&gt;
|  RomFS hash region size, in media units&lt;br /&gt;
|-&lt;br /&gt;
|  0x1BC&lt;br /&gt;
|  4&lt;br /&gt;
|  Reserved&lt;br /&gt;
|-&lt;br /&gt;
|  0x1C0&lt;br /&gt;
|  0x20&lt;br /&gt;
|  ExeFS superblock hash&lt;br /&gt;
|-&lt;br /&gt;
|  0x1E0&lt;br /&gt;
|  0x20&lt;br /&gt;
|  RomFS superblock hash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== NCCH header example for Lego Starwars III ====&lt;br /&gt;
 Signature:              720FF8F83F2A1E998322A026D1434165&lt;br /&gt;
                         ED19642ABC1CB2722135AA202BEAD60A&lt;br /&gt;
                         80BCD21C768C597B8268FEF2C64EA710&lt;br /&gt;
                         4C9BA5E12CFFBD1D0C619F4EF7B42CA7&lt;br /&gt;
                         DD8482CB4EB26720AD66CDA57ABCBCFB&lt;br /&gt;
                         D63268A6E2896A59B3B744E39E45B88A&lt;br /&gt;
                         ABB4C0980ACC6210818DCE6DAC838A10&lt;br /&gt;
                         95D0F66B352474D4B3DA4B333F49912D&lt;br /&gt;
                         29AF7EA58BC8C890B18C70B7D540A9FB&lt;br /&gt;
                         EBE24A5312055617D3353B28C3EB1D17&lt;br /&gt;
                         61021BEFF6AD22C384835B40BD44DFAD&lt;br /&gt;
                         981F6350F9458B17BCB5F768C92ABC93&lt;br /&gt;
                         2BCE9888855A8998F4CDE40C9543514A&lt;br /&gt;
                         C57B84EB75A680E7C742632614620D1D&lt;br /&gt;
                         A253284DF3DC01091EB3800C36FD62EE&lt;br /&gt;
                         BA15340F1FD498FAB67C0302E9CDA397&lt;br /&gt;
 Magic:                  NCCH&lt;br /&gt;
 Content size:           0x1cfef400&lt;br /&gt;
 Partition id:           0004000000038c00&lt;br /&gt;
 Maker code:             3436 (&amp;quot;46&amp;quot;)&lt;br /&gt;
 Version:                0002&lt;br /&gt;
 Program id:             0004000000038c00&lt;br /&gt;
 Temp flag:              00&lt;br /&gt;
 Product code:           CTR-P-ALGP&lt;br /&gt;
 Extended header hash:   0C27E3C1DE7B2AE2D3114F32A4EEBF46&lt;br /&gt;
                         9AFD0CF352C11D4984C2A9F1D2144C63&lt;br /&gt;
 Extended header size:   00000400&lt;br /&gt;
 Flags:                  0000030100000000&lt;br /&gt;
 Plain region offset:    0x00004a00&lt;br /&gt;
 Plain region size:      0x00000200&lt;br /&gt;
 ExeFS offset:           0x00004c00&lt;br /&gt;
 ExeFS size:             0x00143800&lt;br /&gt;
 ExeFS hash region size: 0x00000200&lt;br /&gt;
 RomFS offset:           0x00148400&lt;br /&gt;
 RomFS size:             0x1ceab000&lt;br /&gt;
 RomFS hash region size: 0x00000200&lt;br /&gt;
 ExeFS Superblock Hash:  130C042615F647C4C63225EA9E67F8A2&lt;br /&gt;
                         7B15246B88FBC7A927257B84977B787B&lt;br /&gt;
 RomFS Superblock Hash:  A65BEE1060BB6A6821BBCEC600035B7E&lt;br /&gt;
                         64FB6EACA7F0960CFB1F5A37087728F7&lt;br /&gt;
 Note: Offsets and sizes in media units have been converted to byte sizes.&lt;br /&gt;
&lt;br /&gt;
==== Plain region example for Lego Starwars III ====&lt;br /&gt;
 0004a00: 5b 53 44 4b 2b 4e 49 4e 54 45 4e 44 4f 3a 43 54  [SDK+NINTENDO:CT    [SDK+NINTENDO:CTR_SDK-0_14_23_200_none]&lt;br /&gt;
 0004a10: 52 5f 53 44 4b 2d 30 5f 31 34 5f 32 33 5f 32 30  R_SDK-0_14_23_20&lt;br /&gt;
 0004a20: 30 5f 6e 6f 6e 65 5d 00 5b 53 44 4b 2b 4e 49 4e  0_none].[SDK+NIN    [SDK+NINTENDO:Firmware-02_27]&lt;br /&gt;
 0004a30: 54 45 4e 44 4f 3a 46 69 72 6d 77 61 72 65 2d 30  TENDO:Firmware-0&lt;br /&gt;
 0004a40: 32 5f 32 37 5d 00 5b 53 44 4b 2b 4d 6f 62 69 63  2_27].[SDK+Mobic    [SDK+Mobiclip:Deblocker_1_0_2]&lt;br /&gt;
 0004a50: 6c 69 70 3a 44 65 62 6c 6f 63 6b 65 72 5f 31 5f  lip:Deblocker_1_&lt;br /&gt;
 0004a60: 30 5f 32 5d 00 5b 53 44 4b 2b 4d 6f 62 69 63 6c  0_2].[SDK+Mobicl    [SDK+Mobiclip:ImaAdpcmDec_1_0_0]&lt;br /&gt;
 0004a70: 69 70 3a 49 6d 61 41 64 70 63 6d 44 65 63 5f 31  ip:ImaAdpcmDec_1&lt;br /&gt;
 0004a80: 5f 30 5f 30 5d 00 5b 53 44 4b 2b 4d 6f 62 69 63  _0_0].[SDK+Mobic    [SDK+Mobiclip:MobiclipDec_1_0_1]&lt;br /&gt;
 0004a90: 6c 69 70 3a 4d 6f 62 69 63 6c 69 70 44 65 63 5f  lip:MobiclipDec_&lt;br /&gt;
 0004aa0: 31 5f 30 5f 31 5d 00 5b 53 44 4b 2b 4d 6f 62 69  1_0_1].[SDK+Mobi    [SDK+Mobiclip:MoflexDemuxer_1_0_2]&lt;br /&gt;
 0004ab0: 63 6c 69 70 3a 4d 6f 66 6c 65 78 44 65 6d 75 78  clip:MoflexDemux&lt;br /&gt;
 0004ac0: 65 72 5f 31 5f 30 5f 32 5d 00 00 00 00 00 00 00  er_1_0_2].......&lt;br /&gt;
 0004ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................&lt;br /&gt;
 0004ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................&lt;br /&gt;
&lt;br /&gt;
A tool for parsing this format is available [http://github.com/3dshax/ctr/tree/master/ctrtool here]&lt;br /&gt;
&lt;br /&gt;
==== Example dependency list from the extended header ====&lt;br /&gt;
 00850 41 50 54 3A 55 00 00 00 24 68 69 6F 46 49 4F 00 APT:U...$hioFIO.&lt;br /&gt;
 00860 24 68 6F 73 74 69 6F 30 24 68 6F 73 74 69 6F 31 $hostio0$hostio1&lt;br /&gt;
 00870 61 63 3A 75 00 00 00 00 62 6F 73 73 3A 55 00 00 ac:u....boss:U..&lt;br /&gt;
 00880 63 61 6D 3A 75 00 00 00 63 65 63 64 3A 75 00 00 cam:u...cecd:u..&lt;br /&gt;
 00890 63 66 67 3A 75 00 00 00 64 6C 70 3A 46 4B 43 4C cfg:u...dlp:FKCL&lt;br /&gt;
 008A0 64 6C 70 3A 53 52 56 52 64 73 70 3A 3A 44 53 50 dlp:SRVRdsp::DSP&lt;br /&gt;
 008B0 66 72 64 3A 75 00 00 00 66 73 3A 55 53 45 52 00 frd:u...fs:USER.&lt;br /&gt;
 008C0 67 73 70 3A 3A 47 70 75 68 69 64 3A 55 53 45 52 gsp::Gpuhid:USER&lt;br /&gt;
 008D0 68 74 74 70 3A 43 00 00 6D 69 63 3A 75 00 00 00 http:C..mic:u...&lt;br /&gt;
 008E0 6E 64 6D 3A 75 00 00 00 6E 65 77 73 3A 75 00 00 ndm:u...&amp;lt;nowiki&amp;gt;news:u..&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 008F0 6E 77 6D 3A 3A 55 44 53 70 74 6D 3A 75 00 00 00 nwm::UDSptm:u...&lt;br /&gt;
 00900 70 78 69 3A 64 65 76 00 73 6F 63 3A 55 00 00 00 pxi:dev.soc:U...&lt;br /&gt;
 00910 73 73 6C 3A 43 00 00 00 79 32 72 3A 75 00 00 00 ssl:C...y2r:u...&lt;br /&gt;
 00920 69 72 3A 55 53 45 52 00 6C 64 72 3A 72 6F 00 00 ir:USER.ldr:ro..&lt;br /&gt;
 00930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................&lt;br /&gt;
 00940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................&lt;br /&gt;
 00950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................&lt;br /&gt;
 00960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................&lt;br /&gt;
 ... ...&lt;br /&gt;
 009D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF                 &lt;br /&gt;
 009E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................&lt;br /&gt;
 009F0 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 02 . ............. &lt;br /&gt;
 00A00 5B 53 44 4B 2B 4E 49 4E 54 45 4E 44 4F 3A 43 54 [SDK+NINTENDO:CT&lt;/div&gt;</summary>
		<author><name>Shaunathan</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=User:Shaunathan&amp;diff=1085</id>
		<title>User:Shaunathan</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=User:Shaunathan&amp;diff=1085"/>
		<updated>2011-08-21T02:21:38Z</updated>

		<summary type="html">&lt;p&gt;Shaunathan: Created page with &amp;quot;I make things nice.  (^_^)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I make things nice.  (^_^)&lt;/div&gt;</summary>
		<author><name>Shaunathan</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Nintendo_Video&amp;diff=1064</id>
		<title>Nintendo Video</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Nintendo_Video&amp;diff=1064"/>
		<updated>2011-08-15T19:10:20Z</updated>

		<summary type="html">&lt;p&gt;Shaunathan: /* Internet connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;Attention:&#039;&#039;&#039; What&#039;s described here was found out by reverse-engineering Nintendo Video on a European 3DS and might not apply to Japanese Nintendo Video service.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nintendo Video&#039;&#039;&#039; is a service allowing owners of American, Japanese, and European 3DSes to download and watch various videos offered by Nintendo. Nintendo Video uses SpotPass to download videos even when the Nintendo Video app itself is not running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Internet connection ==&lt;br /&gt;
&lt;br /&gt;
To identify your 3DS&#039;s region and country, different URLs are requested by 3DS&#039;s from different countries. A URL contains a subdomain that&#039;s specific for your region (EU/USA/JP), a country code that&#039;s specific to your country and a language code. Here&#039;s a table containing country codes and subdomains known so far and corresponding file names:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Country&lt;br /&gt;
! Region subdomain&lt;br /&gt;
! File name&lt;br /&gt;
|-&lt;br /&gt;
| EUR&lt;br /&gt;
| pubeu-p&lt;br /&gt;
| ESP_MD&lt;br /&gt;
|-&lt;br /&gt;
| USA&lt;br /&gt;
| pubus-p&lt;br /&gt;
| ESE_MD&lt;br /&gt;
|-&lt;br /&gt;
| Japan&lt;br /&gt;
| pubjp-p&lt;br /&gt;
| ESJ_MD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See http://www.wiibrew.org/wiki/Country_Codes for the country codes.&lt;br /&gt;
&lt;br /&gt;
Language codes known so far:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Language&lt;br /&gt;
! Code&lt;br /&gt;
! Region&lt;br /&gt;
|-&lt;br /&gt;
| Japanese&lt;br /&gt;
| 0&lt;br /&gt;
| Japan&lt;br /&gt;
|-&lt;br /&gt;
| English&lt;br /&gt;
| 1&lt;br /&gt;
| EUR/USA&lt;br /&gt;
|-&lt;br /&gt;
| French&lt;br /&gt;
| 2&lt;br /&gt;
| EUR/USA&lt;br /&gt;
|-&lt;br /&gt;
| German&lt;br /&gt;
| 3&lt;br /&gt;
| EUR&lt;br /&gt;
|-&lt;br /&gt;
| Italian&lt;br /&gt;
| 4&lt;br /&gt;
| EUR&lt;br /&gt;
|-&lt;br /&gt;
| Spanish&lt;br /&gt;
| 5&lt;br /&gt;
| EUR/USA&lt;br /&gt;
|-&lt;br /&gt;
| Netherlands&lt;br /&gt;
| 8&lt;br /&gt;
| EUR&lt;br /&gt;
|-&lt;br /&gt;
| Portuguese&lt;br /&gt;
| 9&lt;br /&gt;
| EUR/USA&lt;br /&gt;
|-&lt;br /&gt;
| Russian&lt;br /&gt;
| 10&lt;br /&gt;
| EUR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In all requests below, &#039;&#039;COUNTRYCODE&#039;&#039; should be replaced with your country&#039;s code, &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039; should be replaced with your region&#039;s subdomain. &#039;&#039;FILENAME&#039;&#039; are also depends on the region and should be replaced correspondingly. &#039;&#039;LANGUAGECODE&#039;&#039; should be replaced by a desired language (by now most of the content are the same for all available languages, so one can use &amp;quot;1&amp;quot; as a most common).&lt;br /&gt;
&lt;br /&gt;
Surprisingly, Nintendo Video uses plain unencrypted HTTP connection to transfer videos. When &amp;quot;Connectivity check&amp;quot; button is pressed, Nintendo Video sends a following HTTP request to &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039;.est.c.app.nintendowifi.net:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;GET /1/&#039;&#039;COUNTRYCODE&#039;&#039;/&#039;&#039;LANGUAGECODE&#039;&#039;/CHECK HTTP/1.1&lt;br /&gt;
&lt;br /&gt;
Host: &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039;.est.c.app.nintendowifi.net&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, no console-specific data is being sent. The server responds with either a 403 or 404 error code, where 403 means that user&#039;s region (determined by IP, I guess) doesn&#039;t match the region specified by &#039;&#039;COUNTRYCODE&#039;&#039; and &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039; and 404 means that everything&#039;s OK.&lt;br /&gt;
&lt;br /&gt;
If everything is OK with the region check, the 3DS proceeds to download videos. It seems that support for only four videos is hardcoded into Nintendo Video app, because it makes following requests (to the same server as the CHECK query):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;GET /1/&#039;&#039;COUNTRYCODE&#039;&#039;/&#039;&#039;LANGUAGECODE&#039;&#039;/&#039;&#039;FILENAME&#039;&#039;1 HTTP/1.1&lt;br /&gt;
&lt;br /&gt;
Host: &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039;.est.c.app.nintendowifi.net&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;GET /1/&#039;&#039;COUNTRYCODE&#039;&#039;/&#039;&#039;LANGUAGECODE&#039;&#039;/&#039;&#039;FILENAME&#039;&#039;2 HTTP/1.1&lt;br /&gt;
&lt;br /&gt;
Host: &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039;.est.c.app.nintendowifi.net&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;GET /1/&#039;&#039;COUNTRYCODE&#039;&#039;/&#039;&#039;LANGUAGECODE&#039;&#039;/&#039;&#039;FILENAME&#039;&#039;3 HTTP/1.1&lt;br /&gt;
&lt;br /&gt;
Host: &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039;.est.c.app.nintendowifi.net&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;GET /1/&#039;&#039;COUNTRYCODE&#039;&#039;/&#039;&#039;LANGUAGECODE&#039;&#039;/&#039;&#039;FILENAME&#039;&#039;4 HTTP/1.1&lt;br /&gt;
&lt;br /&gt;
Host: &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039;.est.c.app.nintendowifi.net&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FILENAMEi&#039;&#039; seems to return 403 if user&#039;s region doesn&#039;t match, 404 if &#039;&#039;i&#039;&#039;th video doesn&#039;t exist and the video itself otherwise. As of 18th of July 2011, only 1st and 2nd videos are available from UK IP addresses.&lt;br /&gt;
&lt;br /&gt;
For Japan region /1/1/0/ESJ_CNF must also present on a server in order to play video files.&lt;br /&gt;
&lt;br /&gt;
These videos can easily be downloaded from any computer with IP address that matches country specified by &#039;&#039;COUNTRYCODE&#039;&#039;, &#039;&#039;COUNTRYSUBDOMAIN&#039;&#039; and &#039;&#039;LANGUAGECODE&#039;&#039; using wget without any special settings. Videos are region-locked.&lt;br /&gt;
&lt;br /&gt;
== SD storage ==&lt;br /&gt;
&lt;br /&gt;
After downloading videos, Nintendo Video stores them on the SD card. However, it&#039;s not yet known how the data is stored. Videos are somehow stored in [[Extdata]].&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
File format used for storing videos is not yet known either. Both videos that were available at 18th of July 2011 contained string &amp;quot;boss&amp;quot; in the first four bytes, which leads me to believe this is a [http://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files &amp;quot;magic number&amp;quot;] used to identify this type of file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Offset&lt;br /&gt;
! Length&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| 0x0&lt;br /&gt;
| 0x4&lt;br /&gt;
| &amp;quot;boss&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0x4&lt;br /&gt;
| 0x4&lt;br /&gt;
| Always 00 01 00 01&lt;br /&gt;
|-&lt;br /&gt;
| 0x8&lt;br /&gt;
| 0x4&lt;br /&gt;
| Big-endian filesize&lt;br /&gt;
|-&lt;br /&gt;
| 0xC&lt;br /&gt;
| 0x4&lt;br /&gt;
| Always 00 00 00 00&lt;br /&gt;
|-&lt;br /&gt;
| 0x10&lt;br /&gt;
| 0x4&lt;br /&gt;
| Release date (UNIX timestamp)&lt;br /&gt;
|-&lt;br /&gt;
| 0x14&lt;br /&gt;
| 0x8&lt;br /&gt;
| Always 00 01 00 00 00 02 00 02&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It appears that this file format is big-endian, unlike [[CXI]].&lt;br /&gt;
&lt;br /&gt;
Data following the header is most likely encrypted using a region-specific key. The video codec used is unknown.&lt;br /&gt;
&lt;br /&gt;
== Server spoofing == &lt;br /&gt;
&lt;br /&gt;
In case you want to try messing with Nintendo Video, here&#039;s a description of what I did:&lt;br /&gt;
&lt;br /&gt;
# Set up a DNS server using bind9, which returned my IP as the IP for pubeu-p.est.c.app.nintendowifi.net [http://pastie.org/2230422 (bind config)].&lt;br /&gt;
## Don&#039;t forget to replace MY_IP in config with your IP address, but &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; replace the IP of conntest.nintendowifi.net service&lt;br /&gt;
# Set up an HTTP server using nginx and put ESP_MD1, ESP_MD2 (which I have downloaded from Nintendo&#039;s servers earlier, see above) in my /var/www/1/110/1/ folder.&lt;br /&gt;
# Configured my 3DS to use my DNS server as both primary and secondary DNS server.&lt;br /&gt;
# ???&lt;br /&gt;
# PROFIT!&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.youtube.com/watch?v=Tl8QYofL1tg A video showing Nintendo Video server being spoofed]&lt;/div&gt;</summary>
		<author><name>Shaunathan</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=3DS_System_Flaws&amp;diff=1058</id>
		<title>3DS System Flaws</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=3DS_System_Flaws&amp;diff=1058"/>
		<updated>2011-08-15T05:24:22Z</updated>

		<summary type="html">&lt;p&gt;Shaunathan: /* Tip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Exploits are used to execute unofficial code (homebrew) on the Nintendo 3DS. This page is a list of known 3DS-mode exploits.&lt;br /&gt;
&lt;br /&gt;
==List of 3DS Exploits==&lt;br /&gt;
There are currently no known 3DS-mode exploits.&lt;br /&gt;
&lt;br /&gt;
==Tip==&lt;br /&gt;
Do not waste your time looking for buffer overflows. Knowledge of the 3DS&#039;s hardware and internals is currently insufficient for them to be exploitable.&lt;/div&gt;</summary>
		<author><name>Shaunathan</name></author>
	</entry>
</feed>