Demo version and piracy protection

They still offer a cracked version of my plugins that are fully functional except for the nag screen. :face_with_symbols_over_mouth:

Argh that’s depressing.

Beware name mangling. Stuff like Ghidra can reverse engineer the whole program flow.
Realtime assembly debugging + step by step execution and if/else checks can be removed trivially.
Should be kept in mind. Especially if no inlining is used. Functions can be easily skipped by deleting a few instructions. And the assembly difference → crack / memory patch.

Even virtual machines for protected code execution or expensive solutions like Denuvo for million dollar AAA Game titles will be removed eventually. You can’t outsmart anyone with “code tricks”. Only make things harder by using something very unconventional. One logical flaw and all effort is wasted.

There is no hope : D

2 Likes

Copy protection can be really fun if that’s your cup of tea, otherwise, just don’t bother, as other have said, it’s an endless cat and mouse game.
It is possible to reasonably delay a crack (which should be the main aim of your copy protection) or, even better, have an incomplete crack that eventually time-bombs, like all our recent cracks.

My suggestion is to use RSA or any other asymmetric encryption (and put the public key in the binary, not the private key!), this way they will need to crack the plugin every time and a keygen won’t work on future updates. Set up a system to automatically place/update time bombs at each build you do.

We also have separate demo and full versions for a few products. It definitely helps delay a full crack, but leaks and fraud transactions can happen. They do release cracked demo versions too, but if you strip them down they are basically useless.

Don’t punish your customers with dongles, C/R, or such things. iLok and Wibu have been cracked.

1 Like

Periodic silence or white noise is a common practice in many plugin demos so I hope 99+% of the user base will understand what it means. I did add a couple of visual clues though.

That is what I am hopping, but then parameters can still be seen by the host, so I guess either replacing those save/load methods with generic ones, or embedding the plugin into some sort of shell would still work. One solution would be to use a normal value tree instead of the the audio processor when in demo mode


Hey, we all die eventually yet everyday we strive to survive a little longer :smiley:

So based on your experience would you say a demo version with no state load/save will not be subject to piracy?

A bit off topic but long time ago i remember that i formatted/reinstalled MacOS (9!?) each month during few years to use the time limiting demo of Max/MSP. A silly hack. At the end i bought it. :person_facepalming:

3 Likes

No, they will crack it anyway. But if the plugin doesn’t save its state or doesn’t have all the features/content, it’ll be useless. Eventually you’ll get a leak or fraudulent transaction and the full version will be cracked.

The trick is making a good enough demo for your customers.

We decided to have separate installers for demo/full only on the products that have a lot of content/samples.

2 Likes

Or I was worried the load/save state could be replaced easily


I got a few fraudulent transactions on my previous plugin, but no crack or leaked serial I could find. I probably did not search “deep” enough though.