Gameloft Auckland *.ARK

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Gameloft Glitch Engine *.ARK

Post by LolHacksRule »

Thank you so much.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Gameloft Glitch Engine *.ARK

Post by LolHacksRule »

Works fine on the past update and most likely the current, thanks so much.
iiiiiiiii
Posts: 1
Joined: Sun Oct 31, 2021 8:18 pm

Re: Gameloft Glitch Engine *.ARK

Post by iiiiiiiii »

I'm trying to extract the files from the ark archive, but I can't get anything to work. I need some help.

The file I'm trying to extract: https://www.mediafire.com/file/y78zpuej ... n.ark/file

I first tried ARK Archiver, but it gives an exception. After that I tried Pon3Ark, but it shows a bad ark version. Decided to try this script:

Code: Select all

# Gameloft (Glitch Engine) ARK format
#   Ice Age Adventures (Android / iOS)
#   Littlest Pet Shop (Android)
#   MY LITTLE PONY: Magic Princess (Android)
# script for QuickBMS http://quickbms.aluigi.org

set KEY binary "\x4F\x94\x32\x01\xA1\x5B\x02\x00\x4F\x94\x32\x01\xB5\x88\x99\x00"

get TABLE_SIZE asize
get FILES long
get TABLE_OFFSET long
math TABLE_SIZE -= TABLE_OFFSET

callfunction DecryptTable 1

for i = 0 < FILES
    getdstring NAME 64 MEMORY_FILE
    getdstring PATH 64 MEMORY_FILE
    get OFFSET long MEMORY_FILE
    get SIZE long MEMORY_FILE
    get ZSIZE long MEMORY_FILE
    get ESIZE long MEMORY_FILE
    get TIMESTAMP long MEMORY_FILE
    getdstring MD5 16 MEMORY_FILE
    get RESERVED long MEMORY_FILE
   
    string PATH += NAME
   
    if ESIZE != 0
        log MEMORY_FILE2 OFFSET ESIZE
        encryption xxtea KEY "0x9e3779b9 0" 0 16
        goto 0
        if ZSIZE == SIZE
           log PATH 0 SIZE MEMORY_FILE2
        else
           clog PATH 0 ESIZE SIZE MEMORY_FILE2
        endif
        encryption "" ""
    else
        if ZSIZE == SIZE
           log PATH OFFSET SIZE
        else
           clog PATH OFFSET ZSIZE SIZE
        endif
    endif
next i

startfunction DecryptTable
    encryption xxtea KEY "0x9e3779b9 0" 0 16
    log MEMORY_FILE TABLE_OFFSET TABLE_SIZE
    encryption "" ""
endfunction

And it gives me this error:

Code: Select all

Error: incomplete input file 0: 000_and_startup_common.ark
       Can't read 606444059 bytes from offset 1c70a336.
       Anyway don't worry, it's possible that the BMS script has been written
       to exit in this way if it's reached the end of the archive so check it
       or contact its author or verify that all the files have been extracted.
       Please check the following coverage information to know if it's ok.

  coverage file 0     0%   5408       13525683   . offset 1c70a336

Last script line before the error or that produced the error:
  30  log MEMORY_FILE2 OFFSET ESIZE

- OFFSET       0x1c70a336
- SIZE         0x24259a1b
  coverage file 0     0%   5408       13525683   . offset 1c70a336
  coverage file -1    3%   168        5400       . offset 000000a8

When trying to run the script in quickbms_4gb_files.exe the window just hangs on this line and nothing else happens:

Code: Select all

  offset           filesize   filename
--------------------------------------

QuickBMS is using the CPU and the output folder is empty.

What could be wrong? Or what am I doing wrong?
The XXTEA key for the file I'm trying to open appears to be correct, as it was accepted by Pon3Ark, and my file is dated from early 2019, so the problem is definitely not the key. I also tried other ark files: from the newest version of MLP, from an ark archive I created with Pon3Ark (with the right key of course); and the same thing happens for them.

What should I do? How do I extract the files from this archive? Or extract the files from this archive yourself and send them to me, please, if you don't mind. Either way, I would be grateful to you.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Gameloft Auckland *.ARK

Post by LolHacksRule »

Seems like the content is ZStandard compressed, which the script doesn't support without a simple mod. I'm seeing a portion of headers like that, and related content also uses that format. The key may be incorrect as when I try to manually decrypt the meta table using the provided key using qbms, it outputs nothing readable, resulting in nameless files. For example, here's a file I manually extracted.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Gameloft Auckland *.ARK

Post by aluigi »

For supporting zstd in the scripts just add:
comtype zstd

and obviously be sure to call clog instead of log when dumping the file/table/whatever.
(I didn't check this specific case, just giving general info)