IPAK Files
IPAK's, implemented in Black Ops 2, are basically an archive of compressed image data.
Structure
Thanks to kokole for the structure.
struct IPakHeader {
unsigned int magic; unsigned int version; unsigned int size; unsigned int sectionCount;
};
struct IPakSection {
unsigned int type; //enum 0x1 = info, 0x2 = data unsigned int offset; unsigned int size; unsigned int itemCount;
};
struct IPakIndexEntry {
unsigned __int64 key; unsigned int offset; unsigned int size;
};
struct IPakDataChunkHeader {
unsigned int countAndOffset; // 24 bits = offset, 8 bits = count unsigned int commands[31]; //(depending on endian) blockSize = (info & 0xFFFF); , compressedFlag = info >> 24;
};
Decompression Methods
The compression method is just the basic LZO1X compression.
PC:
http://pastebin.com/vd9t2U2B
PS3:
1.00 t6mp_ps3f.self - 0x6AEA78
XBOX:
tu9 default_mp.xex - 0x828E5090 tu13 default_mp.xex - 0x828E6308