Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Kein
Posts: 32
Joined: Wed Jan 08, 2020 11:22 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Kein »

Looking for a key for LN2 finder does not work for me:
https://www35.zippyshare.com/v/6zr4O60N/file.html
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

@Kein: My finder works fine with the provided exe - if you have some particular problems while using it, feel free to report them. Also, the key didn't change since demo version and it's available in the list.
Kein
Posts: 32
Joined: Wed Jan 08, 2020 11:22 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Kein »

spiritovod wrote:@Kein: My finder works fine with the provided exe - if you have some particular problems while using it, feel free to report them. Also, the key didn't change since demo version and it's available in the list.


Weird, it would find nothing for me, may be because I'm using newer version of JRE.

Anyway, do you know if it is possible to create encrypted pack using that key? I found some info on the process:
https://www.oneoddsock.com/blog/2018/03 ... pak-files/
https://answers.unrealengine.com/questi ... -file.html
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

@Kein: Apparently, if you have non-oracle version of JRE without legacy support enabled or any kind of custom installed JRE, current finder will not work properly. You may try test version from this post. Also, proper usage of it would be putting finder's exe and game's exe in the same folder, while no other exes are present there.
As for the encryption - native unrealpak tool from UE can encrypt paks (index, or assets, or both), but if you're creating a mod, it's not required. Simply re-use existing signature (.sig file) if present, and the game should work with unencrypted mod pak. In some cases game doesn't support custom paks of the same format and lower one should be used. For example, if a game is built with 4.24 (v8 paks), but v8 pak mod doesn't work, try to create v4 pak. You can find a bit more info about it in this post and base instruction (part 3.10.1).
Kein
Posts: 32
Joined: Wed Jan 08, 2020 11:22 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Kein »

spiritovod wrote:@Kein: Apparently, if you have non-oracle version of JRE without legacy support enabled or any kind of custom installed JRE, current finder will not work properly. You may try test version from this post. Also, proper usage of it would be putting finder's exe and game's exe in the same folder, while no other exes are present there.
As for the encryption - native unrealpak tool from UE can encrypt paks (index, or assets, or both), but if you're creating a mod, it's not required. Simply re-use existing signature (.sig file) if present, and the game should work with unencrypted mod pak. In some cases game doesn't support custom paks of the same format and lower one should be used. For example, if a game is built with 4.24 (v8 paks), but v8 pak mod doesn't work, try to create v4 pak. You can find a bit more info about it in this post and base instruction (part 3.10.1).


I cant get it to work with Little Nightmares 2. It has encrypted and signed PAKs and it wont load ANYTHING that is not original PAK (I'm packing with native 4.24 UnrealPak tool and the game is 4.24 as well, no compatibility issues here). It seems like it only wants properly signed and encrypted one.

spiritovod wrote:As for the encryption - native unrealpak tool from UE can encrypt paks

Yes, question is how to use it outside of source project. Even if you have the key there is no way to supply it to the tool and the process is more complex than just that.
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

Kein wrote:I'm packing with native 4.24 UnrealPak tool and the game is 4.24 as well, no compatibility issues here.

spiritovod wrote:In some cases game doesn't support custom paks of the same format and lower one should be used. For example, if a game is built with 4.24 (v8 paks), but v8 pak mod doesn't work, try to create v4 pak.

A handful of UE games are supporting side paks only through fallback functionality (or backward compatibility if you prefer). For example, unrealpak from vanilla FluffyQuack's workflow and u4pak are producing v4 format. Also, it may be different kind of issues, like improper paths for packaged assets or something. It's all covered in my posts linked above.

Update: I don't want to argue just for the sake of arguing, so here is simple text mod for the game (tested on both GOG and steam versions). It replaces "Exit to Desktop" with "Exit to Windows" in the main menu. Followed my own instruction and posts, packed with vanilla FluffyQuack's workflow with no compression/encryption.
Last edited by spiritovod on Wed Feb 17, 2021 9:45 pm, edited 2 times in total.
Kein
Posts: 32
Joined: Wed Jan 08, 2020 11:22 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Kein »

Nope, ignores it.

UPD: I figured out what was the issue - it is damn filename. First time having such problem. Usually it would load ANY pak file for all the game I've worked with so far but this one is weird, only Helios-WindowsNoEditor_*.pak

Native paker works just fine
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

@Kein: UE is prioritizing paks in reverse alphabetical order. So if you have 01.pak (mod) and 02.pak (base), mod will not work in most cases. And it was also mentioned in one of my linked posts. Though in this particular case it seems the game is limiting it even further.
bluetooth
Posts: 5
Joined: Sat Jan 30, 2021 9:06 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by bluetooth »

I edit the .pak file without any problem (quickbms or unrealpak). but the game does not open on the ps4 console. (Game: Nba2k playground 2) What could be the problem? I used the latest version of unrealpak.
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

@bluetooth: Never worked with PS4 mods, but start with reading some posts above (most stuff is universal for all platforms) and make sure you're creating patch properly (something like Patch Builder should be easy to use).
For example, you can't repack original paks, only add mods - also you should use unrealpak of the same engine version as the game (or lower) - and so on.
bluetooth
Posts: 5
Joined: Sat Jan 30, 2021 9:06 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by bluetooth »

@spiritovod thank you for the answer. How can I tell the engine version the game was created for? The game is made for ps4 console, there is no .exe file. (My goal is to edit the language file)
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

@bluetooth: You can take a look at steam version of the game, games are usually built with the same UE versions across platforms. Also, you can use older paks format in most cases, but I can't confirm anything for PS4.
Ascarre
Posts: 1
Joined: Thu Feb 25, 2021 2:56 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Ascarre »

I can successfully extract pak files(Pubg mobile All 1.2.0 versions like global, korea and all) and get .dat files in which they can be edited and eventually edit those pak files and repack them to .pak files again but when i try to put it back to obb the obb doesn't get detected...can anyone tell me where am i wrong.... The size of the obb files are same and pak files are also the same.....
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

@Ascarre: PUBG surely has integrity checks in its libraries, so even if you'll edit 1 byte in an extracted file and somehow put it back - and resulted size will not change - integrity check will still fail. Also, I'm not sure how exactly you're putting stuff back, since current index format is unknown (at least for public) and the game will not accept generic pak format, unlike usual UE4 games.

-----------------------------------------------------------------

Beyond a Steel Sky script from specific scripts bundle is replaced with more generic "*_zstd" script, which should also work for other games with zstd compression, like Bravely Default 2. I think it's time to implement some kind of auto-detection of compression types feature (instead of multiplying similar scripts), but it will take some time to test it properly.
Monteven
Posts: 3
Joined: Fri Oct 05, 2018 4:22 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Monteven »

Outriders Demo released today, uses UE4.25. Was able to identify some possible encryption keys but am unsure on the compression method? Tried oodle using oo2core and deflate but both seem to fail. Also tried the quickbms stuff but didn't seem to work, although I am new to unreal overall. link to shipping exe and an example .pak.
Idiotgodc
Posts: 7
Joined: Mon Oct 26, 2020 3:54 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Idiotgodc »

@Ascarre Contact me on mail will help you on that !
pubginvisible@gmail.com
Nyny
Posts: 3
Joined: Fri Feb 26, 2021 3:36 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Nyny »

@Monteven Im having the same issue. Were you able to find a workaround? Some tips or guidance would be great
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

@Monteven, @Nyny: The game is using modified paks, close to "frozen index" format, but noticeably different. Chunks are compressed with zlib and then encrypted with AES - luckily, they didn't touch encryption, so I've added proper key to the list (available via my signature). There are no tools or scripts with support of such unique format at the moment though, but I don't think it would be hard to create any, at least for raw chunks extraction.

-----------------------------------------------------------------

latest_UE4_bms-script updated to version 0.4.25b. It can now detect all common compressions in paks (zlib, gzip, zstd, lz4, oodle) without the need to set them manually. Therefore some scripts were removed from specific scripts bundle - namely Days Gone, Tony Hawk's Pro Skater 1+2, Pathless, Beyond a Steel Sky and zstd - because updated main script can handle those games now.
Nyny
Posts: 3
Joined: Fri Feb 26, 2021 3:36 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by Nyny »

@spiritovod Thanks for the response. I was able to get the AES key using AES finder (same key that you shared on the link below), but even using the latest ue4_bms_script, and a couple of other scripts I have and using the encryption key, I'm not getting anything.
Unfortunately, I don't have enough knowledge to create a script by myself to meet the new format. I mainly use the textures for u4model, and then I export them and edit them myself.
I think I'll have to wait until someone can create a bms for it, or some other tool.
Once again, thank you for your response
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Unreal Engine 4 pak-file Unpacker / unreal_tournament_4.bms [UE4 global topic]

Post by spiritovod »

Raw extract script for Outriders added to custom_UE4_scripts bundle. Note that it will only allow you to extract assets without filenames (and last file before error will be some garbage, not actual asset). Maybe I'll dig into that a bit later. Anyway, it should be relatively easy to support such files properly for those who understand latest pak formats (though it's not me).

Update: Small fix is applied to Outriders script, because initial one could fail on some big files. Also, it's not clear to me why 1GB (compressed) -> 300MB (decompressed) happens upon extraction. At first I thought about paddings and wrong chunks detection, but in that case last files from an archive wouldn't be extracted properly and it seems like game doesn't use chunked assets at all (i.e. one asset per chunk).
Last edited by spiritovod on Sat Feb 27, 2021 5:46 pm, edited 1 time in total.