Wrote some POC for aes keys finder (one exe -> one key or not found). JRE 8 or above is required to run it. Readme is included in the archive (please read it carefully to avoid issues). Virustotal report for those who care:
link.
Bleeding Edge is supported, unless they'll change something related in the code. Last Oasis is also supported in version 0.9c. Finder can detect protected games starting from version 0.9d. Small fixes in version 0.9e. Additional message in case if a key is not found in version 0.9f. Additional routine for some rare cases is now implemented in version 0.9g. Additional check is added to avoid false-positive detection of protection in version 0.9h.
POC for aes keys finder in mobile games added (one game -> one key or not found). JRE 8 or above is required to run it. Readme is included in the archive (please read it carefully to avoid issues). Virustotal report for those who care:
link.
Fixed premature appearance of key.txt, fixed issue when finder could work more than expected, added total execution time to output message in version 0.9c. Some optimizations were removed to improve compatibility with newest games in version 0.9d. More optimizations were removed to improve compatibility with some old games in version 0.9e (previous version is recommended though).
Known unsupported by the finder games: PUBG (all versions), Sea of Thieves.
-----------------------------------------------------------------------
All questions about any PUBG games will be ignored. All required information is available here in "all you should know about PUBG" section. No further support will be provided due to the reasons explained there.-----------------------------------------------------------------------
I've desided to move all modified scripts to one post (this one). The reason why they can't be merged is because currently there is no way to distinguish them by archives names. Current method with scanning folder name for a pattern is not very effective, since pak archives can be moved anywhere.
Original post with modified script by ssh:
viewtopic.php?t=1005&start=1200#p51805 (0.4.23.1a).
Latest official version of the script by aluigi:
http://aluigi.org/bms/unreal_tournament_4.bms (0.4.25 at the moment).
Script with v9 paks support (for 4.25 games and below) - "unreal_tournament_4_0.4.25" in the attachment. Updated on 26.12.2020 to properly support base paths from mount points if present. Updated on 26.02.2021 to support auto-detection of compression types - therefore some scripts from specific scripts bundle were removed, because updated main script can handle those games now. Updated on 19.12.2021 to handle large non-chunked uncompressed assets over 3GB. Updated on 26.07.2022 to simplify embedding keys for more convenient usage. Updated on 17.04.2023 with additional check to ensure that correct version of quickbms is used.
Script with v11 paks support (for 4.26/4.27/UE5 games) - "unreal_tournament_4_0.4.27" in the attachment. It's not backward compatible with 4.25 and below games. Also, it only supports paks at the moment, but utoc/ucas support may be added later. Updated on 16.01.2021 to properly support files over 4GB. Updated on 23.04.2021 with ability to skip assets which are being addressed outside current package. Updated on 02.05.2021 with auto-detection of compression types and small fixes. Updated on 05.10.2021 with support for updated 4.27 packages format. Updated on 14.11.2021 with fix for proper omitting invalid entries. Updated on 19.12.2021 to handle large non-chunked uncompressed assets over 3GB. Updated on 08.01.2022 with proper support for unicode in folder names. Updated on 26.07.2022 to simplify embedding keys for more convenient usage. Updated on 17.04.2023 with additional check to ensure that correct version of quickbms is used.
You can also read "Alternative tools for paks" section from this topic.Supported games (with specific scripts): Sea of Thieves, State of Decay 2 (latest versions), PUBG Lite, PUBG Mobile/Mobile Lite (only for 1.1.x and below), PUBG Mobile (chinese ver., including latest versions), Friday 13th: Game (PC/Switch), Friday 13th: Camp Blood, Bless Mobile, Dragon Quest XI - also works with S edition, Pinball Wicked (thanks to pipopipo/pipoman), Conan Exiles, Tekken 7, Fable Legends, Outriders (thanks to mobus_c352), Century: Age of Ashes, Miracle 2 (MU Origin 3), Super People, Back 4 Blood (supports both full and beta versions), Crayta, Tony Hawk's Pro Skater 1+2, Light Response / Lightning, Dead by Daylight Mobile (SEA version), QQ (software), Uncharted Waters Origin, Apex Legends Mobile (thanks to FabianFG), Zhu Xian World, Crystal of Atlan, Ash Echoes / Fraxinus Decay, Superfuse, Meet Your Maker (paks only), Blood Bowl 3, ArcheAge War, Dark and Darker, Farlight 84, The Outlast Trials, Snowbreak: Containment Zone.
Sound extraction (readme included): Satisfactory (latest versions), R-Type Final 2, Gears 4, Sword and Fairy 7.
Some unrelated scripts for UE4 games: for save files from Life is Strange 2 (
link), for "paka" files from Kingdoms Reborn (
link), modified u4pak for creating Dragon Quest XI compatible packages (
link), for decrypting/encrypting and converting save files from Dragon Quest XI S (
link), for extracting some Tekken 7 mods (
link), for merging resources into proper obb for Project W (
link).
-----------------------------------------------------------------------
Some experimental scripts are now available in custom_UE4_scripts bundle. For more info please read included readme. Bundle updated on 26.11.2021 with some scripts for 4.26/4.27/UE5 games.
1) custom_extract: Provides the same functionality as native filter of quickbms, but on the script level. Created more for research purposes, but may be helpful in some cases.
2) get_hashes: Allow you to extract hashes (actually guids) and filenames of all assets from a pak. Resulted file can be used with extract_diff script.
3) extract_diff: Allow you to compare paks from different game versions and extract or list only new/updated files.
4) raw_extract: Allow you to extract raw assets from paks, if index is not available or obfuscated. That means you can extract all files, but without proper filenames.
Basically, get hashes from pak of the old game version, put them near pak of updated game version and extract or list new/updated files. There are additional options in the extract_diff script, but no backward compatibility yet (for example, you can't guess, which files were completely removed in the updated game version). Please note that those scripts are very experimental and may have some bugs/limitations.
-----------------------------------------------------------------------
How to repack assets back in form of mods: It was already explained multiple times here and there. Please read some related posts before asking about it:
first post,
second post (and
base instruction, part 3.10.1). Alternatively, you can use
instruction by masagrator (it works for PC games as well), which is mentioned in the posts above.