From 3dbrew
Revision as of 23:16, 18 January 2014 by Yellows8 (talk | contribs)
Jump to navigation Jump to search

Offset Size Description
0x0 0x80 SHA-256 hash-table, verified by CRR
0x80 0x04 Magic "CRO0"
0x84 0x2C ?
0xB0 0x04 Section0 offset
0xB4 0x04 Section0 size
0xB8 0x04 Section2 offset
0xBC 0x04 Section2 size
0xC0 0x04 Section1 offset
0xC4 0xBC ?

CRO with extension .cro is used for "DLLs". CRS with extension .crs can be used for storing "DLL" symbols as well. The end of the file is aligned to a 0x1000-byte boundary with 0xCC bytes. CRO0 files are usually stored under "romfs:/cro/".

The first hash-table entry hashes the 0x100-byte header following the hash-table. The following hash-table entries hash the sections specified in the header.

Section0 for CRO contains code, and CRO section1 contains symbols.

When the RO module loads the entire CRO into process memory(mapped in the 0x00100000-0x04000000 region), it modifies the mapped CRO data. The magic field is also changed to "FIXD".