Revision as of 01:21, 29 July 2010 by imported>Stoker25
STFS (Secure Transacted File System) is the file system used by the Xbox 360 for all packages created and downloaded by the system. It is protected using a series of SHA1 hashes and a RSA signature. There are three different kinds of STFS packages, CON packages which are signed by consoles and LIVE/PIRS packages which are signed by Microsoft.
STFS MetaData
Offset
|
Length
|
Type
|
Information
|
0x22C
|
0x100
|
license entries (see below)
|
Licensing Data (used to check package owner)
|
0x32C
|
0x14
|
bytes
|
Content ID / Header SHA1 Hash
|
0x340
|
0x4
|
unsigned int
|
Entry ID
|
0x344
|
0x4
|
signed int
|
Content Type (see below)
|
0x348
|
0x4
|
signed int
|
Metadata Version (see below)
|
0x34C
|
0x8
|
signed long
|
Content Size
|
0x354
|
0x4
|
unsigned int
|
Media ID
|
0x358
|
0x4
|
signed int
|
Version (system/title updates)
|
0x35C
|
0x4
|
signed int
|
Base Version (system/title updates)
|
0x360
|
0x4
|
unsigned int
|
Title ID
|
0x364
|
0x1
|
byte
|
Platform (xbox/gfwl?)
|
0x365
|
0x1
|
byte
|
Executable Type
|
0x366
|
0x1
|
byte
|
Disc Number
|
0x367
|
0x1
|
byte
|
Disc In Set
|
0x368
|
0x4
|
unsigned int
|
Save Game ID
|
0x36C
|
0x5
|
bytes
|
Console ID
|
0x371
|
0x8
|
bytes
|
Profile ID
|
0x379
|
0x1
|
byte
|
Volume Descriptor Struct Size
|
0x37A
|
0x1
|
byte
|
Reserved
|
0x37B
|
0x1
|
byte
|
Block Seperation
|
0x37C
|
0x2
|
signed short
|
File Table Block Count
|
0x37E
|
0x3
|
signed int24
|
File Table Block Number
|
0x381
|
0x14
|
bytes
|
Top Hash Table Hash
|
0x395
|
0x4
|
signed int
|
Total Allocated Block Count
|
0x399
|
0x4
|
signed int
|
Total Unallocated Block Count
|
0x39D
|
0x4
|
signed int
|
Data File Count
|
0x3A1
|
0x8
|
signed long
|
Data File Combined Size
|
0x3A9
|
0x8
|
bytes
|
Reserved
|
0x3B1
|
0x4C
|
bytes
|
Padding
|
0x3FD
|
0x14
|
bytes
|
Device ID
|
0x411
|
0x900 (each 0x80 = different locale)
|
unicode string
|
Display Name
|
0xD11
|
0x900 (each 0x80 = different locale)
|
unicode string
|
Display Description
|
0x1611
|
0x80
|
unicode string
|
Publisher Name
|
0x1691
|
0x80
|
unicode string
|
Title Name
|
0x1711
|
0x1
|
byte
|
Transfer Flags (see below)
|
0x1712
|
0x4
|
signed int
|
Thumbnail Image Size
|
0x1716
|
0x4
|
signed int
|
Title Thumbnail Image Size
|
0x171A
|
0x4000 (thumbnail size)
|
image
|
Thumbnail Image
|
0x571A
|
0x4000 (title thumbnail size)
|
image
|
Title Thumbnail Image
|
Metadata version 2
If the Metadata Version field is set to 2, the format is slightly changed:
Offset
|
Length
|
Type
|
Information
|
0x3B1
|
0x10
|
bytes
|
Series ID
|
0x3C1
|
0x10
|
bytes
|
Season ID
|
0x3D1
|
0x2
|
signed short
|
Season Number
|
0x3D5
|
0x2
|
signed short
|
Episode Number
|
0x3D5
|
0x28
|
bytes
|
Padding
|
0x171A
|
0x3D00 (thumbnail size)
|
image
|
Thumbnail Image
|
0x541A
|
0x300 (each 0x80 = different locale)
|
image
|
Additional Display Names
|
0x571A
|
0x3D00 (title thumbnail size)
|
image
|
Title Thumbnail Image
|
0x941A
|
0x300 (each 0x80 = different locale)
|
image
|
Additional Display Descriptions
|
License Entries
For every entry in the license data field:
Offset
|
Length
|
Type
|
Information
|
0x0
|
0x8
|
signed long
|
License ID (XUID / PUID / console id)
|
0x8
|
0x4
|
signed int
|
License Bits
|
0xC
|
0x4
|
signed int
|
License Flags
|
Content Types
Value
|
Description
|
0xD0000
|
Arcade Title
|
0x9000
|
Avatar Item
|
0x40000
|
Cache File
|
0x2000000
|
Community Game
|
0x80000
|
Game Demo
|
0x20000
|
Gamer Picture
|
0xA0000
|
Game Title
|
0xC0000
|
Game Trailer
|
0x400000
|
Game Video
|
0x4000
|
Installed Game
|
0xB0000
|
Installer
|
0x2000
|
IPTV Pause Buffer
|
0xF0000
|
License Store
|
0x2
|
Marketplace Content
|
0x100000
|
Movie
|
0x300000
|
Music Video
|
0x500000
|
Podcast Video
|
0x10000
|
Profile
|
0x3
|
Publisher
|
0x1
|
Saved Game
|
0x50000
|
Storage Download
|
0x30000
|
Theme
|
0x200000
|
TV
|
0x90000
|
Video
|
0x600000
|
Viral Video
|
0x70000
|
Xbox Download
|
0x5000
|
Xbox Original Game
|
0x60000
|
Xbox Saved Game
|
0x1000
|
Xbox 360 Title
|
0x5000
|
Xbox Title
|
0xE0000
|
XNA
|
Transfer Flags
Value
|
Description
|
0x00
|
DeviceID and ProfileID Transfer
|
0x20
|
Move Only Transfer
|
0x40
|
DeviceID Transfer
|
0x80
|
ProfileID Transfer
|
0xC0
|
None
|