i think that every software protection scheme can be cracked in one or two days, except for protections based on heavy cryptography.
Protection tecniques today are really advanced, but i dont understand why to spend a lot of time implementing a protection tecnique that adds calculus overhead at the application (think at api-redirection, you run redirection code at every apicall) etc etc if you know that the protection will be cracked?
I would instead spend 1 day to implement a silly protection like
if(license_ok) run(); else MessageBox("license error");
and spend a lot of time to plan a GOOD selling strategy. If you code a good winzip clone and you sell it for 19$, do you expect people will buy it?
However, for BIG softwares the problem is the opposite, they should like people sharing their products. Lets have an example: LightWave3d is a good 3d rendering software package. It is really expensive, here in my country i would pay for it about 4000$. I used it because i like computer graphics, of course i had it cracked. People that use lightwave for work HAVE the original license, because working with it exposes them to severe license checks by related authoryties (i dont think that at pixar they use a cracked copy of softimage
). How could i know lightwave3d if i dont try it? They cant expect me to buy it and pay 4000$ if i dont know the program! And the only way to know these big software packages is *see it with your own eye*
So now that i know it i could pay 4000$ because i like this software a lot!
This scenario is a little different from sharewares! However in such a case i would spend time in planning selling strategies, customer support, free training courses etc etc. It has no sense to spend more than 1 hour in plaaning a protection for such a software.