WWE 2K22 research information
Straight away I'll say working on this game has been a headache especially since there is no information online so I'll post some information if someone wants to continue to work on it but doesn't know where to start.
This game is heavily obfuscated/encrypted. The header structed is encrypted, the data itself is encrypted. They used weak xor encryption which is weak but the catch is these keys are different for each stream/block that's encrypted, they are generated based on a generated hash to produce a 256 byte key.
Since I had no idea how to decrypt the header to get these hash values, I just hijacked the exe by injecting code then to be able to obtain decrypted headers which has a structure that looks like this
Code:
type
PWWEStruct = ^TWWEStruct;
TWWEStruct = record
Position, Hash: Int64; {not sure if Hash is 32-bit or 64-bit}
StreamIndex, CSize, Format, DSize, Unk1, FileIndex: Int32; {FileIndex = bakedfile##.cak}
end;
As for compression that was used, they used Hydra which comes from oodle library hence you see oo2core_9_win64.dll set to level 6. So if you plan on decompressing all the streams, it's important that you know the decompressed stream size as Hydra streams can either be Kraken, Mermaid/Selkie or Leviathan in terms of their format (Leviathan streams cannot be processed directly by xtool properly if decompressed size is unknown)
The attachment contains decrypted headers for the first 15GB.
Code:
[0] Performing scan from block 0000000000000000 to 0000000000003E87 (16008)
[0] Actual hydra stream found at 0000000000000000 (16008 >> 71384)
[0] Processing streams on block 0000000000000000 to 0000000000003E87 (16008)
[0] Processed hydra stream at 0000000000000000 (16008 >> 71384 >> 16008) using l6,c0,t256 successfully