Changes

Jump to navigation Jump to search
177 bytes added ,  01:16, 4 July 2017
→‎Header version 3: Same "box" format as header 6+
Line 14: Line 14:     
===Header version 3===
 
===Header version 3===
* byte magic[8]: "NadeoPak"
+
byte magic[8];  // "NadeoPak"
* uint32 version (3)
+
uint32 version; // 3
* uint64 headerIV
+
uint64 headerIV;
* Blowfish encrypted:
+
Blowfish encrypted:
** uint128 headerMD5
+
{
** uint32 metaDataOffset
+
    uint128 headerMD5;
** uint32 dataOffset
+
    uint32 metaDataOffset;
** if version >= 2
+
    uint32 dataOffset;
*** uint32 metaDataUncompressedSize
+
    if version >= 2:
*** uint32 metaDataCompressedSize
+
    {
** if version >= 3
+
        uint32 metaDataUncompressedSize;
*** uint128
+
        uint32 metaDataCompressedSize;
** uint32 flags
+
    }
** uint32 numFolders
+
    if version >= 3:
** FolderEntry folders[numFolders]
+
        uint128 unused;
*** uint32 parentFolderIndex (index into folders; -1 if this is a root folder)
+
    uint32 flags;
*** string name
+
    uint32 numFolders;
** Set up ivXor
+
    FolderDesc folders[numFolders]
** uint32 numFiles
+
    {
** FileEntry files[numFiles]
+
        uint32 parentFolderIndex; // index into folders; -1 if this is a root folder
*** uint32 folderIndex (index into folders)
+
        string name;
*** string name
+
    }
*** uint32
+
    Set up ivXor;
*** uint32 uncompressedSize
+
    uint32 numFiles;
*** uint32 compressedSize
+
    FileDesc files[numFiles]
*** uint32 offset
+
    {
*** uint32 [[Class IDs|classID]] (indicates the type of the file)
+
        uint32 folderIndex; // index into folders
*** uint64 flags
+
        string name;
 +
        uint32 unknown;
 +
        uint32 uncompressedSize;
 +
        uint32 compressedSize;
 +
        uint32 offset;
 +
        uint32[[Class IDs | classID]]; // indicates the type of the file
 +
        uint64 flags;
 +
    }
 +
}
    
====Header MD5====
 
====Header MD5====

Navigation menu