(NetEase) "ACE RACER" .mpk archive unpack help

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Vlalchinanya
Posts: 18
Joined: Mon Apr 27, 2020 5:05 pm

(NetEase) "ACE RACER" .mpk archive unpack help

Post by Vlalchinanya »

Hi, I need help. Recently, a new racing game "Ace Racer" developed by Netease has been released in China. There is no global version of the game yet. The game contains beautiful models that would be nice to get. Game archives have the .mpk format and have the LZMA compression algorithm. Are there people here who could write a script for QuickBMS to unpack the contents of these archives? I would be very grateful.
Sample game archive file: https://www.mediafire.com/file/nm5qe75x ... 6.mpk/file
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

There are some older topics about this "MESSIAH" format but the problem is the obfuscation used on the index table, even in those topics without solution.
Instead the files are just compressed with the usual ZZZ4 and LZMA formats used in a script on the website so, worst case scenario, a lame scanner&dumper for these two patterns can work.
Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Ekey »

index table is a separated file named as > Resources.mpkinfo

Archives

Code: Select all

Resources.mpk
Resources1.mpk
Resources2.mpk
Resources3.mpk
Resources4.mpk
Resources5.mpk
Resources6.mpk
Resources7.mpk
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

The problem is that mpkinfo doesn't match the provided Resources6.mpk, is it maybe a difference version?

Code: Select all

get EXT extension
if EXT & "info"
    # mpkinfo and any other similar extension
else
    print "Error: you must open the info file"
    cleanexit
endif
string EXT - "info"

get RES_NAME basename

get VER long    # 1
get FILES long
for i = 0 < FILES
    get NAMESZ short
    getdstring NAME NAMESZ
    get OFFSET long
    get SIZE long
    get FILENUM long
    math FILENUM >> 1

    putarray 0 i FILENUM
    putarray 1 i NAME
    putarray 2 i OFFSET
    putarray 3 i SIZE
next i

sortarray 0 1

math LAST_FILENUM = -1
for i = 0 < FILES
    getarray FILENUM 0 i
    getarray NAME    1 i
    getarray OFFSET  2 i
    getarray SIZE    3 i

    if FILENUM != LAST_FILENUM
        math LAST_FILENUM = FILENUM
        if FILENUM == 0
            string TMP p "%s.%s"   RES_NAME         EXT
        else
            string TMP p "%s%d.%s" RES_NAME FILENUM EXT
        endif
        open FDSE TMP
    endif
    log NAME OFFSET SIZE
next i
Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Ekey »

aluigi wrote:The problem is that mpkinfo doesn't match the provided Resources6.mpk, is it maybe a difference version?

I have no idea about version, provided file from 1.1.5 apk.
Vlalchinanya
Posts: 18
Joined: Mon Apr 27, 2020 5:05 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Vlalchinanya »

Ekey wrote:
aluigi wrote:The problem is that mpkinfo doesn't match the provided Resources6.mpk, is it maybe a difference version?

I have no idea about version, provided file from 1.1.5 apk.

I am sending you the file of the version of the game that I have now
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

Great, the script was perfect ;)
Vlalchinanya
Posts: 18
Joined: Mon Apr 27, 2020 5:05 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Vlalchinanya »

aluigi wrote:Great, the script was perfect ;)

That is, it will be possible to extract the contents of this archive?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

Did you try my script??
Vlalchinanya
Posts: 18
Joined: Mon Apr 27, 2020 5:05 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Vlalchinanya »

aluigi wrote:Did you try my script??

Sorry, I just don't understand a little what I need to do to make your script work :?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

That's impossible.
Yesterday I checked the mpkinfo and Resource6.mpk files you provided and everything matched perfectly, tested with quickbms by dumping the full content without any error.

Are you sure you are not messing with the various versions of the files?
Vlalchinanya
Posts: 18
Joined: Mon Apr 27, 2020 5:05 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Vlalchinanya »

aluigi wrote:That's impossible.
Yesterday I checked the mpkinfo and Resource6.mpk files you provided and everything matched perfectly, tested with quickbms by dumping the full content without any error.

Are you sure you are not messing with the various versions of the files?

Sorry, maybe I'm doing something wrong. The fact is that your script (for me personally, I don't know how for you) works partially. It unpacks from these archives a couple of files that do not have an extension and a name, and are rather small in size. Although the archive itself weighs more than 200 MB. Maybe you could help me with this?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

The one in the screenshot is NOT my script.
Vlalchinanya
Posts: 18
Joined: Mon Apr 27, 2020 5:05 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Vlalchinanya »

aluigi wrote:The one in the screenshot is NOT my script.

Oh, I just tried to use the above code as a script for QuickBMS. I thought that the name of the archive to be unpacked should be entered in the last lines of the code. Or am I doing something wrong and you have posted another script somewhere else?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

The script automatically loads the mpk resources referenced in mpkinfo.
Yes you did something wrong because you edited my script.
Vlalchinanya
Posts: 18
Joined: Mon Apr 27, 2020 5:05 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Vlalchinanya »

aluigi wrote:The script automatically loads the mpk resources referenced in mpkinfo.
Yes you did something wrong because you edited my script.

Yes, now I realized that it was my mistake. But there is a problem, when I try to unpack all the .mpk archives at once, QuickBMS cannot create files, because folders with a similar name already exist and he offers me to automatically generate a name by clicking on the enter button, which happens all the time. But if I try to unpack these archives separately, then QuickBMS just gives an error. For the script to work, I selected the .mpkinfo file
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

The script indeed asks to open mpkinfo and refuses to open any other file, that's correct.

I updated the script for skipping the folders:
http://aluigi.org/bms/netease_mpk.bms
Vlalchinanya
Posts: 18
Joined: Mon Apr 27, 2020 5:05 pm

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by Vlalchinanya »

aluigi wrote:The script indeed asks to open mpkinfo and refuses to open any other file, that's correct.

I updated the script for skipping the folders:
http://aluigi.org/bms/netease_mpk.bms

Thank you very much, now everything works as it should :D
SaraKale
Posts: 17
Joined: Tue Oct 02, 2018 11:46 am

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by SaraKale »

hi aluigi,I also have a question,I extracted another game, want to know what these file formats are? I won't decrypt it :(

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

Re: (NetEase) "ACE RACER" .mpk archive unpack help

Post by aluigi »

That ZZZ4 in the screenshot is the LZ4 compression used in this game but I don't understand why it's not located at the beginning of the file.

I found some of these files in the provided samples and each one contains multiple ZZZ4 and LZMA chunks but the format is weird.

Anyway in the meantime I remembered that this Ace Racer has compressed files so I just updated the script for automatically decompressing them during extraction.
It's important to re-extract the files.

While for these other files (I guess all those with .4 and .8 extension) I don't have a solution at the moment.