Unreal Engine 4 replays

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
TSG
Posts: 3
Joined: Tue Jan 22, 2019 8:24 pm

Unreal Engine 4 replays

Post by TSG »

Hi! I was told zenhax was the place I should come to for this. I have a .replay file used by the Unreal Engine. I would like to be able to decompress these files and recompress them. I have found they are compressed with Oodle LZB16 at a Very Fast compression level. I DO NOT own the Oodle SDK. Would it be possible to decompress with just this information? I cannot provide a sample at the current time of posting, but I will be able to if someone asks.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Unreal Engine 4 replays

Post by aluigi »

I know that format and, yes, it uses oodle.
The initial part consists in decompressing the main chunks and it's simple, but parsing the data of the chunks is complex.
TSG
Posts: 3
Joined: Tue Jan 22, 2019 8:24 pm

Re: Unreal Engine 4 replays

Post by TSG »

Alright, well. I don't know where to go about this, so here's a sample. I had to rename the extension to .bin, but the original extension is .replay
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Unreal Engine 4 replays

Post by aluigi »

I can give you an example but that's the max I can do (the format changes often and so on):
offset 0x000107b2 DecompressedSize = 0x0001a5b9
offset 0x000107b6 CompressedSize = 0x00008241
compressed data starts at offset 0x107ba

Code: Select all

comtype oodle
goto 0x000107b2
get DecompressedSize long
get CompressedSize long
savepos OFFSET
clog "dump.dat" OFFSET CompressedSize DecompressedSize

Remember that it's only an example of one compressed chunk.

*edit* fixed
TSG
Posts: 3
Joined: Tue Jan 22, 2019 8:24 pm

Re: Unreal Engine 4 replays

Post by TSG »

Hi! I had a look at the output this script gave, and strings and whatnot appear to still be compressed
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Unreal Engine 4 replays

Post by aluigi »

Oh sorry, my fault.
Script is now fixed :)