How I cracked the trial program by exploiting the file header
Picture: ImHex3 https://github.com/WerWolv/ImHex – the tool for the job!
Some time ago I downloaded FL Studio to make some music as a hobby (noncommerical, just an after work activity).
I was pretty poor at the time, and since I’m definitely not a professional musician I stuck it out with the trial version both impressed at the quality of the program and lamenting that I couldn’t afford the full version.
After using the trial version for quite a while I obviously ran into the problem that it quite fairly lets you make whatever you want – but you just can’t reopen it with the trial version, it’s marked with the invisible hand of doom! (Where it says tsk tsk, you really need to pay for this 😞 and wags its digital finger sternly)
Quite fair, if I were a music mogul bashing out mesmerising sensory overloads to barrage the Top 10s each summer, I would expect some compenstation if I were Image-Line.
However, unlike the Pete-Tongs of the world, I’m just occasionally making poorly arranged Pirates of The Carribean Knockoffs in D# and leaving the program open until it crashes or my computer restarts for updates, and I lose access to my auditory screecher forever.
So decided to see if I could do a sneaky sneaky and walk past the stern security check and reopen my absolutely awful amazingtune_v3.flp and maybe also learn something about reverse engineering. (Always a lesson to be had!)
And so I took scope of the problem:
Firstly FL Studio Trialâ„¢ despite rejecting our file will still let you load the prepackaged demo projects, or indeed any file that wasn’t saved by the trial program it just won’t let you load those files that you’ve saved with it, very mysterious – if I were a betting man I’d imagine that a black mark of doom is being fingerprinted on amazingtune_v3.flp.
Now, I could attach a decompiler/inspector and step around Fruity Loops and see if I can circumvent this check – probably possible, but it sounds like serious effort for the scope of the problem – how can we make the trial version load trial files.
So instead I opened ImHex and looked at the top of the file to see if I could immediately spot any patterns.
The first think that struck me, is there’s readable strings, but they’re wide strings, and a pattern of what looks suspiciously like line endings of 00 00 are also wide.
Definately encoding text data in some sort of unicode or wide format!
Next I opened a file written by the full-paid-for version of FL Studio. Hmm I thought, I can’t see anything here.
But I wonder what happens if I were to copy what looks like the header from the full file to the trial file – that’s got to do something right?