Difference between revisions of "Extdata"

From 3dbrew
Jump to navigation Jump to search
m
Line 2: Line 2:
 
At /Nintendo 3DS/<SomeID>/<SomeID>/extdata/00000000 is directories for each title, with Quota.dat inside each dir. Then there's a sub-directory 00000000, which contains the actual extdata. Size and number of files in this dir varies per title.
 
At /Nintendo 3DS/<SomeID>/<SomeID>/extdata/00000000 is directories for each title, with Quota.dat inside each dir. Then there's a sub-directory 00000000, which contains the actual extdata. Size and number of files in this dir varies per title.
  
These files are encrypted with AES-CTR. The key is unknown, this is console-unique and presumably game-unique. The base CTR is fixed: the CTR never changes after each write. Thus it is possible to obtain some cleartext by XORing one file with a newer file, where the newer file overwrote zeros in the original file with non-zero data. Some Ridge Racer extdata from some replay data: https://gist.github.com/d6b646c581d386b4fa83
+
These files are encrypted with AES-CTR. The key is unknown, this is console-unique and presumably title-unique. The base CTR is fixed: the CTR never changes after each write. Thus it is possible to obtain some cleartext by XORing one file with a newer file, where the newer file overwrote zeros in the original file with non-zero data. Some Ridge Racer extdata from some replay data: https://gist.github.com/d6b646c581d386b4fa83

Revision as of 02:33, 13 April 2011

This page describes the format and crypto of extdata, "extra data" and StreetPass data stored on SD card. At /Nintendo 3DS/<SomeID>/<SomeID>/extdata/00000000 is directories for each title, with Quota.dat inside each dir. Then there's a sub-directory 00000000, which contains the actual extdata. Size and number of files in this dir varies per title.

These files are encrypted with AES-CTR. The key is unknown, this is console-unique and presumably title-unique. The base CTR is fixed: the CTR never changes after each write. Thus it is possible to obtain some cleartext by XORing one file with a newer file, where the newer file overwrote zeros in the original file with non-zero data. Some Ridge Racer extdata from some replay data: https://gist.github.com/d6b646c581d386b4fa83