Jump to content

[Flash Game] ColoringWidget/Heidi's DA Pixel Maker SOL File Mysterious Bytes


Go to solution Solved by ikskoks,

Recommended Posts

Posted

Hello!

Two years ago, I wanted to make a Python Script that recreate a SOL file from picture for the DA Pixel Maker/Heidi's ColoringWidget Flash Game to resume the work but got left in the freezer because of the mysterious three bytes after the Grid string.

ColoringWidget-MysteriousBytes-AllBlackandAllWhite.thumb.png.c8b496d0f8c4818ad38f36c2737d5e44.png

It varies between 06 83 63 (All Black) and 06 91 01 (All White) but I can't figure out what this means.

With JPEXS Free Flash Decompiler, it shows:

0 < code < 128 = Result + 1
128 < code < 2048 = Result + 2
2048< code < 65536 = Result + 3
code > 65536 = Result + 4

Could be related to Color Decimal Number Length? I don't know.

There aren't much documentation for SOL files in Flash Games and that let me to publish the unfinished script (which I usually avoid to).

If you find something, free to share.


SOURCES

My GitHub Repository (+ SOL Files Sample and Search): https://github.com/zigaudrey/heidi-ColoringWidget-tools/tree/main

Link to download ColoringWidget Flash Game: http://st.deviantart.com/news/show-the-love/expressinstall.swf

Once you launch the game, you can get access to the SOL file at: AppData\Roaming\Macromedia\Flash Player#SharedObjects\9N8E36RZ#localWithNet\Users\Your_Username\Documents\Flash Files\ColoringWidget

The ZIP File contains files to launch the Flash Game without BlueMaxima's Flash Point:

Flash Reader from Flash Point.zip

  • Moderators
  • Solution
Posted

Well, I did a little research on Flash Cookies (SOL files) and I put it all together in the article on RE Wiki
https://rewiki.miraheze.org/wiki/Flash_Cookie_SOL


I saw notes on your github and you were sligthly wrong with some fields, so you can compare it with my article on the wiki and make some corrections in your tool.
The most important thing is that you should understand that SOL file is an Adobe format and payload (data block) follows AMF file format documented by Adobe
https://web.archive.org/web/20220122035930/https://www.adobe.com/content/dam/acom/en/devnet/pdf/amf-file-format-spec.pdf

So anything after data block header is a payload section that needs to be properly serialized by your tool.
There are many tools that allow you proper serialization like: minerva, SOL Editor, Adobe AIR SDK, JPEXS Free Flash Decompiler etc.

Some code for serializing is available on JPEXS github page:
https://github.com/jindrapetrik/jpexs-decompiler/tree/master/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/sol
https://github.com/jindrapetrik/jpexs-decompiler/tree/master/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/amf/amf3 

You can test this code by going to Tools > Sol cookie editor in JPEXS Free Flash Decompiler:
obraz.png.7ff9e8da51abde68c7d248cda39210f1.png


So you shouldn't ask "what are those three bytes". You should ask "how can I properly parse AMF3 serialized data" 🙂 
There are lots of information (articles) about this, for example on wikipedia:
https://en.wikipedia.org/wiki/Local_shared_object
https://en.wikipedia.org/wiki/Action_Message_Format

 

Good luck. 🙂 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...