Language.bin content (I'll use Long as 4 byte int; little endian; strings are not null-terminated):
Code: Select all
16 bytes - hash?
12 bytes - unknown
Long - number of languages
LANG START
Long - length of lang string
<variable length> - lang string
LANG END (those lang strings are totally unnecessary, because other language strings are in different files)
Long - number of groups
GROUP START
Long - length of group name string
<variable length> - group name string
4 bytes - unknown
Long - number of strings in group
Long - length of encrypted data
<variable length> - *encrypted data*
IDENTIFIER START
Long - length of identifier string
<variable length> - identifier string
11 bytes - unknown
IDENTIFIER END
GROUP END
According to WFPackageParser code the only thing that changed in file structure is that strings are now encrypted. What is unknown was unknown and not needed. Strings were previously separated by 0x00 (not sure if last string ended with 0x00 too). With this information I tried to find a group with all strings known to me. See attachments.