Copy protection ?

Sylvain Cottarel's icon

Hello,
How is managed the copy protection of a commercial app made with Max ?
I don't see any object that let the user to enter a serial number, or something like that.

For Mac user, I guess that the job is made by the App store, no way to install the app without buying in the App Store, am I right ?

And what about Windows users ?

Source Audio's icon

you are wrong.
There is no copy protection through applestore.

If you need copy protection, you should invent something by yourself,
knowing that it can get cracked within a minute.

Sylvain Cottarel's icon

Nobody that have skills to crack an app will spend one minute trying to crack what I want to sell. But I'd like to prevent the app to be installed on any computer just by copying the installer.

Sylvain Cottarel's icon

Cylce 74 should provide something... There's really nothing ?

Roman Thilenius's icon


first thing to do is to understand what copy protection is and when it is needed.

second step is to build something which is worth and/or required beeing protected.

"entering a serialnumber" is something which then can be done with about 30 different max objects. people usually control a gate with it, which makes the difference between demo and full features, or implements a time limit.

doing encryption or hardware protection wouldnt differ from other apps. luckily nobody asked for my opinion on that kind of stuff.

Sylvain Cottarel's icon

first thing to do is to understand what copy protection is and when it is needed.

Feel free to elaborate...

second step is to build something which is worth and/or required beeing protected.

I asked because I think to have something that worth to be a bit protected. Again, a bit...

"entering a serialnumber" is something which then can be done with about 30 different max objects. people usually control a gate with it, which makes the difference between demo and full features, or implements a time limit.

This is valuable information, thanks. If you're kind enough to point where a beginner like me could find some of these ways to enter a serial, that could be great.

doing encryption or hardware protection wouldnt differ from other apps.

I come from Synthedit where copy protection modules are provided. I post this message in the beginner forum, I want to learn. Finding information by myslef is not that easy. That's where other experienced guy around here can really be helpfull.

Source Audio's icon

copy protection means business
business means you invest into something and want to make money.
So you compare investment - expected profit, express that in hours of work
to program the app AND that copy protection, provide online registration etc
or buy license for crap like excelsoftware which advertised many times here in the forums,
whenever topics about protecting Standalones reapeared,
and they did again and again since decades.
Then you can decide if it is worth.
-------
You need to clear few questions
- what do you want to do to prevent app from running without authorisation.
- is simple serial number, which can be shared together with app itself enough ? no !
- do you need to indentify unique hardware to become part of authorisation ?
- on Mac, PC, laptop or desktop, using what ? Mac address, BIOS serial etc etc
and make sure you get some reliable info from each kind of hardware, OS

check this few infos toward end of page 2 starting from Oct 11 2021
https://cycling74.com/forums/shell/replies/2

You can also search this forum for copy protection, protect standalones etc to see what has been
posted about it since many years.
-----------
The main difficulty with Max is that compiled mxf file is readable json file
that can be edited even with simple apps like textedit
or simply turned into editable maxpatch.
And changing one letter from message like
;
max quit
to
;
max doit

would prevent Max from quitting itself if "Authorisation" was not found.
Means you must avoid using plain text as part of the process
and at least hide all that has to do with authorisation by some means
so that it is not easily recognisable.
---------
I am sure some sort of simple protection could be done,
one could for example program main patcher as "starter" that looks for
"authorisation" and if it finds it runs the real patch,
if not starts "authorisation" process.
You could store some kind of file with authorisation somewhere in user
folders, where one is allowed to write.
But you could face few problems with that, depending on user, OS etc
-------
There were discussions in some topic a while ago about the safe place to write
files from Max - it is there where Max or Standalones write preferences.

well just few thoughts from me, if you continue with the idea and need
further help, just post.

Sylvain Cottarel's icon

Thanks for all that informations, much appreciated.

Again, I'm just after a way to avoid the app to be installed just by copying the installer. If one really want to crack it, I don't care that much. But asking a bit of money for an app that could be shared is not fair for the customer. I think the copy protection is more usefull for the one that has paid for the app.
I'm thinking of a way to check the date on the computer. One day, one serial. The code must be entered in the day. If one want to re-install the app, he needs to send an e-mail to get a new code.
Not perfect, by far, but maybe doable.
Do you know how Max could ask the date to the computer ?

Source Audio's icon

It is no problem to get date
check date object in Max.
But that makes no much sense.
As first there is no installer, only if you make one.
One just copies Max Standalone to where one wants.
Then what would prevent someone to zip your "installed" standalone and send it
to another place.
What woud that date mean, and where do you store that date ?
I mean into installer ?
You don't want to create installer for every customer on the fly ?

Really, there should be easier and better staregies.
---------
What is your plan to cummunicate with customers ?
Authorisations per email ?
Or maybe some website where one can login and authorise
software upon receiving challenge-response, based on some hardware info ?
At the end it depends on people that did buy the software to give it away
or not if you don't use some restrictions based on hardware.

Sylvain Cottarel's icon

It's only thoughts of course, that's the first time I think about copy protection.

I was thinking of a serial generator based on a (complex) algorythm based on the date.
When one wants to enter the serial, the app check the date and apply the algorythm to see if it match with the serial entered. I've got the same algorythm by my side, then we are synchronized during the day.

Authorisation by email seems doable, I already bought a usefull app to make grid for music, the guy gives the code by email If I remember well. you need to enter a valid email adress before buying.


Sylvain Cottarel's icon

I've read your posts about checking hardware, but the threads seems unfinished, you finally state " Problem with hard disk serial number is that any drive will get reported, even all removable ones, and the order of report is not given by kind. "

Source Audio's icon

for me that thread is done, I only listed few options and drawbacks.
The problem with Hard Disk serial on Windows could be overcome, by letting user select
which one to authorise, in case there are more present.
You populate umenu with infos, user selects one if more are available,
and sends it to you.
On Mac I would use Hardware UUID as it is allways available.
To offer download link only to paid customers is ok,
but leads to no protection.



Roman Thilenius's icon


ah, synthedit, that explains a lot. but i can assure you that this is an exception which you wont find elsewhere.

copy protection systems are not something which would be on the same level as window handling, storing presets, or math functions. it definetly falls under custom development.

you said youself thath you dont need it, but no problem, we are debating a lot of theoretical and hypothetical things here. :)

if i would need to implement one in under 5 minutes, i would disable the left audio out after 30 minutes and allow the user to enter multiples of 123477 to unlock the full version.



and then i would discuss my copy protection method in a public forum.

-110

Sylvain Cottarel's icon

Great infos guys, thank you both. Will see what I can do with that stuff