Overview
ExeFS or Executable Filesystem, is the part of the CXI, which contains information related to the executable program.
The ExeFS usually contains one or more of the following files:
Format
The ExeFS header is 0x200 bytes long and follows this simple structure:
START | SIZE | DESCRIPTION |
---|---|---|
0x00 | 0x80 | File headers (8 headers maximum, 16 bytes each) |
0x80 | 0x80 | Reserved |
0x100 | 0x100 | File hashes (8 hashes maximum, 32 bytes each, one for each header) |
File headers
There are a maximum of 8 file headers in the ExeFS format, which have the following structure:
START | SIZE | DESCRIPTION |
---|---|---|
0x0 | 0x8 | File name |
0x8 | 0x4 | File offset |
0xC | 0x4 | File size |
File hashes
Each file header has a corresponding file hash, which is the SHA256 hash calculated over the entire file contents.
* Offsets are non-inclusive of the header's size(0x200 bytes).
** The 'Logo' is not a compulsory part of ExeFS, so an ExeFS without a 'Logo', will have these entries of the header filled with zeros. .