SD:/private/wii/loc.dat

From WiiBrew
< SD:
Jump to navigation Jump to search

Layout

Loc.dat is encrypted using the SDKey and SD-IV values. The general layout of this file is as follows.

Offset Length Description
0x0 0x4 Magic - "sdal"
0x4 0x10 File MD5 Sum (padded with MD5-blanker before hash calculation)
0x14 0x3C0 List of channels on the SDMenu. (Each slot is 4 bytes. Empty slot indicated by 0x00000000.)
0x3D4 0xC Padded with 0s.

Here's some C structures:

typedef struct
{
	char	tid[4];			// The lower 4 bytes of the channels Title ID.
} SDList;

typedef struct
{
	char	magic[4];		// The Magic. Always `sdal'
	u8	md5[0x10];		// MD5 sum. Pad with MD5-Blanker.
	SDList	list[240];		// The entries. Same order as on the menu.
	u8	padding[12];		// Padding with 0's.
} Locdat;

Credit to CaitSith2, and Galaxy| for this finding.