Mortal Kombat X Coalesced files

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
spider91
Posts: 233
Joined: Sun Aug 24, 2014 5:26 pm

Mortal Kombat X Coalesced files

Post by spider91 »

Localization files seems to be encrypted. Can someone decrypt (and maybe unpack) them?

Files:
https://mega.co.nz/#!wpBQwLiQ!sryVULTBx ... HeaBGu4hek

Executables dir (maybe needed to get encryption key):
https://mega.co.nz/#!QpIlQJCS!kFFhMdnmx ... h9jWmPrxWk
shadow_lonely
Posts: 216
Joined: Mon Oct 06, 2014 3:30 am

Re: Mortal Kombat X Coalesced files

Post by shadow_lonely »

aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Mortal Kombat X Coalesced files

Post by aluigi »

Or this script (only for the decryption!):

Code: Select all

encryption aes "\x93\xBB\x69\xDF\x37\xD5\x38\x57\xB8\x6B\x20\xE1\x45\xCB\xA0\x61\xDD\x7D\xCF\xED\x3A\xAC\xF2\xDB\x29\x35\x91\x6C\x27\x66\x0B\xAF"
get SIZE asize
get NAME filename
log NAME 0 SIZE
ponaromixxx
Posts: 176
Joined: Tue Sep 30, 2014 5:59 pm

Re: Mortal Kombat X Coalesced files

Post by ponaromixxx »

aluigi wrote:Or this script (only for the decryption!):

Code: Select all

encryption aes "\x93\xBB\x69\xDF\x37\xD5\x38\x57\xB8\x6B\x20\xE1\x45\xCB\xA0\x61\xDD\x7D\xCF\xED\x3A\xAC\xF2\xDB\x29\x35\x91\x6C\x27\x66\x0B\xAF"
get SIZE asize
get NAME filename
log NAME 0 SIZE


Thank you! and how now to get there a lot of text documents?
swuforce
Posts: 233
Joined: Thu Oct 16, 2014 4:39 pm

Re: Mortal Kombat X Coalesced files

Post by swuforce »

Try these scripts after the decrypt
unpack

Code: Select all

get asize asize
get unk long
do
get namesize long
math namesize ^= 0xffffffff
math namesize *= 2
get name unicode
get size long
math size ^= 0xffffffff
math size *= 2
savepos offset
log name offset size
getdstring data size
get null short
savepos pos
while pos < asize


repack

Code: Select all

get csize asize
get cname filename
string cname += "_NEW"
log MEMORY_FILE 0 0
get unk long
put unk long MEMORY_FILE
do
get namesize long
put namesize long MEMORY_FILE
math namesize ^= 0xffffffff
xmath namesize "namesize * 2 + 2"
savepos nameoff
getdstring name namesize
putdstring name namesize MEMORY_FILE
goto nameoff
get name unicode
get size long
math size ^= 0xffffffff
xmath size "size * 2 + 2"
getdstring data size
open FDSE name 1
get asize asize 1
set size asize
math size /= 2
math size ^= 0xffffffff
put size long MEMORY_FILE
append
log MEMORY_FILE 0 asize 1
append
get msize asize MEMORY_FILE
goto msize MEMORY_FILE
put 0 short MEMORY_FILE
savepos pos
while pos < csize
get size asize MEMORY_FILE
log cname 0 size MEMORY_FILE


try
quickbms unpack.bms Coalesced.ENG .
quickbms repack.bms Coalesced.ENG .
spider91
Posts: 233
Joined: Sun Aug 24, 2014 5:26 pm

Re: Mortal Kombat X Coalesced files

Post by spider91 »

also there is number of files

Code: Select all

get FILES long
math FILES /= 2
for i = 0 < FILES
   get NAME_SZ long
   math NAME_SZ *= -2
   get NAME unicode
   get SIZE long
   math SIZE *= -2
   savepos OFFSET
   log NAME OFFSET SIZE
   math OFFSET += SIZE
   goto OFFSET
next i
n97t7f7b57f
Posts: 27
Joined: Tue Apr 21, 2015 2:15 pm

Re: Mortal Kombat X Coalesced files

Post by n97t7f7b57f »

unpack settings Coalesced.ini

Code: Select all

get FILES long
math FILES /= 2
for i = 0 < FILES
get NSIZE long
getdstring NAME NSIZE
get SIZE long
savepos OFFSET
log NAME OFFSET SIZE
math OFFSET += SIZE
goto OFFSET
next i
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Mortal Kombat X Coalesced files

Post by aluigi »

@spider91 @n97t7f7b57f
You can just check if the NAMESZ field is negative (method used in the Unreal Engine for unicode strings) and setting it to unicode so you can have just one script:

Code: Select all

get FILES long
math FILES / 2
for i = 0 < FILES
    get NAMESZ long
    if NAMESZ < 0
        math NAMESZ * -2
        getdstring NAME NAMESZ
        set NAME unicode NAME
    else
        getdstring NAME NAMESZ
    endif
    get SIZE long
    if SIZE < 0
        math SIZE * -2
    endif
    savepos OFFSET
    log NAME OFFSET SIZE
    math OFFSET + SIZE
    goto OFFSET
next i
n97t7f7b57f
Posts: 27
Joined: Tue Apr 21, 2015 2:15 pm

Re: Mortal Kombat X Coalesced files

Post by n97t7f7b57f »

Thanx 4 that

I can not write a repack script for ini. :(
any help, aluigi?
Last edited by n97t7f7b57f on Tue Apr 21, 2015 5:38 pm, edited 1 time in total.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Mortal Kombat X Coalesced files

Post by aluigi »

You are right, I forgot that it must be converted to positive first.

To reinject the files back in the archive you can use the reimport.bat file, all the information about the reimport mode of quickbms are available in section 3 of quickbms.txt
n97t7f7b57f
Posts: 27
Joined: Tue Apr 21, 2015 2:15 pm

Re: Mortal Kombat X Coalesced files

Post by n97t7f7b57f »

aluigi wrote:To reinject the files back in the archive you can use the reimport.bat file, all the information about the reimport mode of quickbms are available in section 3 of quickbms.txt

yeah, but
modify the extracted files leaving their size unchanged or smaller than before.

is a bad thing
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Mortal Kombat X Coalesced files

Post by aluigi »

The archive is quite simple, probably it's even possible to write a rebuilder script like I did for the ACD files of Assetto Corsa.
n97t7f7b57f
Posts: 27
Joined: Tue Apr 21, 2015 2:15 pm

Re: Mortal Kombat X Coalesced files

Post by n97t7f7b57f »

aluigi wrote:The archive is quite simple, probably it's even possible to write a rebuilder script like I did for the ACD files of Assetto Corsa.


[number of files/2][size of "path+filename"][path+filename][size of "data"][data][size of next file name] etc

Its alive! BMS script to repack MKX Coalesced.ini

Code: Select all

//Decrypt, Extract
//edit X64-MK10*.ini
//run this script to repack Coalesced.ini
//(example quickbms.exe MK_10_repack_ini.bms Coalesced.ini Output\)
//Encrypt

get csize asize
get cname filename
log MEMORY_FILE 0 0
get FILES long
put FILES long MEMORY_FILE
math FILES /= 2
for i = 0 < FILES
get nsize long
put nsize long MEMORY_FILE
getdstring name nsize
putdstring name nsize MEMORY_FILE
get size long
savepos OFFSET
math OFFSET += SIZE
goto OFFSET
//MEMORY_FILE now [FILES][namesize][name]
//open edited X64-MK10*.ini
open FDSE name 1
get asize asize 1
set size asize
put size long MEMORY_FILE
//add data from edited X64-MK10*.ini to MEMORY_FILE
append
log MEMORY_FILE 0 asize 1
append
//msize is size of uncompleted new Coalesced.ini file
get msize asize MEMORY_FILE
goto msize MEMORY_FILE
next i
get size asize MEMORY_FILE
//write completed Coalesced.ini file
log cname 0 size MEMORY_FILE


User friendly MKX Coalesced Extract&Repack
Nobody
Posts: 47
Joined: Sat May 16, 2015 11:58 pm

Re: Mortal Kombat X Coalesced files

Post by Nobody »

n97t7f7b57f wrote:
aluigi wrote:The archive is quite simple, probably it's even possible to write a rebuilder script like I did for the ACD files of Assetto Corsa.


[number of files/2][size of "path+filename"][path+filename][size of "data"][data][size of next file name] etc

Its alive! BMS script to repack MKX Coalesced.ini

Code: Select all

//Decrypt, Extract
//edit X64-MK10*.ini
//run this script to repack Coalesced.ini
//(example quickbms.exe MK_10_repack_ini.bms Coalesced.ini Output\)
//Encrypt

get csize asize
get cname filename
log MEMORY_FILE 0 0
get FILES long
put FILES long MEMORY_FILE
math FILES /= 2
for i = 0 < FILES
get nsize long
put nsize long MEMORY_FILE
getdstring name nsize
putdstring name nsize MEMORY_FILE
get size long
savepos OFFSET
math OFFSET += SIZE
goto OFFSET
//MEMORY_FILE now [FILES][namesize][name]
//open edited X64-MK10*.ini
open FDSE name 1
get asize asize 1
set size asize
put size long MEMORY_FILE
//add data from edited X64-MK10*.ini to MEMORY_FILE
append
log MEMORY_FILE 0 asize 1
append
//msize is size of uncompleted new Coalesced.ini file
get msize asize MEMORY_FILE
goto msize MEMORY_FILE
next i
get size asize MEMORY_FILE
//write completed Coalesced.ini file
log cname 0 size MEMORY_FILE


User friendly MKX Coalesced Extract&Repack



When I try to repack game does not turn on give the cache error.
"Verify integrity of game cache error"
Sorry, bad eng.
n97t7f7b57f
Posts: 27
Joined: Tue Apr 21, 2015 2:15 pm

Re: Mortal Kombat X Coalesced files

Post by n97t7f7b57f »

Nobody wrote:When I try to repack game does not turn on give the cache error.
"Verify integrity of game cache error"
Sorry, bad eng.

That's because the integrity check looks @ File Size, so Adding or removing anything changes that file size & causes the error.
Nobody
Posts: 47
Joined: Sat May 16, 2015 11:58 pm

Re: Mortal Kombat X Coalesced files

Post by Nobody »

n97t7f7b57f wrote:
Nobody wrote:When I try to repack game does not turn on give the cache error.
"Verify integrity of game cache error"
Sorry, bad eng.

That's because the integrity check looks @ File Size, so Adding or removing anything changes that file size & causes the error.




We do not have the possibility to change the size?
make unlimited?

EDİT:It also committed the same mistake I did even though I fully unpack files directly to repack. file sizes the same.