If a proprietary Software has a Lock By means of a Serial key , Password Protection or may be through any means, based on the assumption that that the code wont be accessible so it cant be investigated ,then its a poor protection .Hiding the Source Code isnt an insurmountable obstacle in studying and modifying the application. Today’s Reverse engineering Techniques can recognize library functions , variables ,data types and all other aspect of a code Very easily.In the near future , dis-assemblers will probably able to generate code similar to that of High-Level languages.
But even today analyzing a machine code isnt as complex as to stop the hackers for long .The overwhelming no.of.Cracks which are being Developed Serves as a proof 🙂 For example if a Demo version of a Game has a Limitation on number of players , all a hacker needs to do is find the instruction which performs this check and delete it.
There is a common opinion that if the expense of Neutralizing the protection isnt lower than the cost of a legal copy nobody will crack it .Thats really wrong !!!!Material gain isnt a only gain for a hacker .Much bigger motivation lie in the intellectual struggle(Who is more Clever , The protection Developer or me ???,),The competition (Which hacker cracks it first) , curiosity , Advancing ones own skills.Many young hackers spend months removing a protection from a program that only costs few dollars ….