-
Notifications
You must be signed in to change notification settings - Fork 2
The Extended Structure
Simple answer, I do not know. The MSGHEADER - extenblock element is a pointer to the EXTHDR
structure:
// extended header block
typedef struct _EXTHDR
{
uint16_t hdrlen; // length of ???
uint16_t numblocks; // number of additional FILECOUNTRYINFO blocks
} EXTHDR, *PEXTHDR;
When you run the decompiler the info will display if an extended header is present.
** Has an extended header **
Ext header length: 302
Number ext blocks: 0
It always is the last four bytes of the file and always (English files I have observed) end:
2E 01 00 00
which equates to 0x012E 0x0000
or a length of 302 and 0 blocks.
My best guess is length is always going to be 302 which is the size of FILECOUNTRYINFO structure. The number of blocks would be for additional codepages ... just a guess. This would make sense because FILECOUNTRYINFO contains a filename which seems redundant in the main FILECOUNTRYINFO.
I have found the extended header in OSO001.MSG, OSO001H.MSG, LIBC.MSG and I am sure there are others. Anyway, I just do not know more than what is written here.