Extracting pak files from iDreams' Symbian games

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Tetriser
Posts: 3
Joined: Mon Jan 18, 2021 5:07 am

Extracting pak files from iDreams' Symbian games

Post by Tetriser »

iDreams = Infinite Dreams, btw

Games like Sky Force, KRally and Explode Arena on older Symbian on Nokia phones (Series 60 v2, to be exact), which use PAK files without any headers.

This is how it looks like (KRally's in this case):
Image

The question is, are there any extractors or BMS scripts that can interpret these archives?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Extracting pak files from iDreams' Symbian games

Post by aluigi »

Do you see any interesting information maybe at the end of the archive?
Feel free to upload a sample file for analysis.
Tetriser
Posts: 3
Joined: Mon Jan 18, 2021 5:07 am

Re: Extracting pak files from iDreams' Symbian games

Post by Tetriser »

aluigi wrote:Do you see any interesting information maybe at the end of the archive?
Feel free to upload a sample file for analysis.

Unfortunately, nothing
Image

Also here's another PAK (this one is from the original Sky Force)
data.pak
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Extracting pak files from iDreams' Symbian games

Post by aluigi »

Ok the file was xored with 0xaa.
So everything is ok now but it uses at least two compression algorithms that I can't recognize at the moment (I didn't check further).
In the meantime this is the work-in-progress script, once someone will figure out the two algorithms it will be easy to finish it:

Code: Select all

getdstring ZERO 16
get FILES long
filexor 0xaa
for i = 0 < FILES
    get SOME_CRC long
    get OFFSET long
    get SIZE long
    get ZSIZE threebyte
    get ZIP byte
    if ZIP == 0
        log "" OFFSET SIZE
    elif ZIP == 2
        comtype ???
        math OFFSET + 4
        math ZSIZE  - 4
        clog "" OFFSET ZSIZE SIZE
    elif ZIP == 3
        comtype ???
        clog "" OFFSET ZSIZE SIZE
    else
        print "Error: unknown ZIP %ZIP%"
        cleanexit
    endif
next i