Microsoft Solitaire Collection *.ARCHIVE/*.ZIP (Customly compressed ZIP)

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

Microsoft Solitaire Collection *.ARCHIVE/*.ZIP (Customly compressed ZIP)

Post by LolHacksRule »

The .ARCHIVE files are ZIP files given by the PK file headers but I cannot decompress any assets from them due to errors occuring with no matter archiving program/plugin what I use, will someone figure these files out? LINK BELOW, files from the Android version.
Last edited by LolHacksRule on Tue Apr 28, 2020 8:46 pm, edited 6 times in total.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Microsoft Solitaire Collection (Mobile) *.ARCHIVE

Post by aluigi »

It states that it's using the compression algorithm 34 which is custom.
The data starts with the byte 0x1b followed by the 16 bit decompressed size (so it's probably chunked) followed by the raw compressed data which is nothing like lzss/lz4 or other "easy" algorithms where parts of the original data are visible.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE

Post by LolHacksRule »

Ok then how would I extract it then? This file is also used in the Win10 build, preferably in versions newer than 3.18.12091.0, 2.11.1807.1002 and 1.9.1.50210.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE

Post by LolHacksRule »

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

Re: Microsoft Solitaire Collection *.ARCHIVE

Post by aluigi »

What answer should I give you?
You have data compressed with an algorithm that you don't know.
The only solution is reverse engineering it.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE

Post by LolHacksRule »

Darn, guess I'll RE the Win10 version to find the mechanism...
Ekey
Posts: 1383
Joined: Sat Aug 09, 2014 2:34 pm

Re: Microsoft Solitaire Collection *.ARCHIVE

Post by Ekey »

Main library is Solitaire.dll - used functions from ClrCompression library (FxCore package). By function names, you can see that this is from a series of zlib (possibly modified).

Code: Select all

crc32
deflateInit2_
inflateInit2_
deflate
inflate
crc32
inflateEnd
deflateEnd
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE

Post by LolHacksRule »

Ok then I was going to RE it but that helps.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE

Post by LolHacksRule »

Anyone working on this still?
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE/*.ZIP [DLC] (Customly compressed ZIP)

Post by LolHacksRule »

Here's the current files (and more) on a permanent cloud storage https://drive.google.com/drive/folders/ ... sp=sharing
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE/*.ZIP (Customly compressed ZIP)

Post by LolHacksRule »

Library for ARMV7 has been added to the above link if someone wants to look at the executable.
LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE/*.ZIP (Customly compressed ZIP)

Post by LolHacksRule »

Someone on Discord figured out brotli is the compression, I have no script knowledge so if possible can someone make a script for me?

UPDATE: Someone did, ask in DM.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Microsoft Solitaire Collection *.ARCHIVE/*.ZIP (Customly compressed ZIP)

Post by aluigi »

LolHacksRule
Posts: 865
Joined: Fri Apr 20, 2018 12:41 am

Re: Microsoft Solitaire Collection *.ARCHIVE/*.ZIP (Customly compressed ZIP)

Post by LolHacksRule »

Here's the original script just in case someone asked https://cdn.discordapp.com/attachments/ ... rchive.bms