Software cracking uses reverse engineering. Reverse engineering involves taking a mechanical device, software program or electronic device apart, understanding its workings, and then attempting to create something out of that. It has been a common practice in the world of mechanics and electronics for a long time.
It has been the greatest challenge for most innovating tech companies (like Sony) for a very long time. The military has been using it for centuries, attempting to analyze the enemy's weapons and creating their own versions to combat them.
In the software industry, a very popular case was San Jose-based Phoenix Technologies, Ltd. reverse engineering the IBM BIOS to create their own compatible version. (You can read about it in this article by Mathew Schwartz, Reverse-Engineering, Computerworld, November 12, 2001)
Origins of Software Cracking
I need to first differentiate between software crackers and "crackers", the latter referring to malicious hackers, while the former referring to programmers who used reverse engineering to remove copy protection from the software.
Now that I have made that distinction, let me move on to the history of software cracking. It began in the 1980s with disk-based software copy protection schemes on the Atari 800, Commodore and Apple II systems. The software manufacturers used hardware schemes to prevent people from making copies. Game developers also attempted cheaper solutions like user-interactive copy protection which forced the users to enter some evidence that they had purchased the software, like for example, a word from the game manual. However most of these solutions suffered from BTO vulnerabilities, which are flaws in a copy protection system that makes a copy in which the protection is circumvented Better Than the Original in some way. The software developers were forced to come out with more innovative methods of copy protection.
Circumventing copy protection schemes was the biggest challenge out there, and it spawned the cracking scene. Soon software protection schemes would include hardware dongles, registration keys, keyfiles, Internet activation, etc. Crackers were always working to get ahead of the software developers, seemingly all for the glory and challenge.
The apparent disregard for laws to go one up against rivals in the cracking scene was interesting, considering that most never made money out of their efforts. It was a strive to possess the intangibles of social esteem and prestige, over any materialistic goods. It almost proved to the world that a coherent social structure is possible where materialism is not the reward.
The legality of cracking (or reverse engineering) is complicated, with the law differing in many countries. But being a crime hard to prove, most convictions concern the distribution of cracks themselves, or people who crack for commercial gains. A majority of the crackers continue to fearlessly crack their way into the protection schemes of all commercial software out there.
It has always been a race out there. The software industry trying to stay one step ahead, and for good reason. It has been estimated that piracy has cost the software industry over 20 billion dollars in revenue, every year. This is more than the GDP of most developing countries, incidentally where most of the piracy occurs.
Software cracking has been a constant force acting upon the software industry, forcing it to innovate for decades now. And in all probability, it shall remain an agent of flux for a long time, until human nature itself changes. It seems unrealistic to believe that an unbreakable software protection exists. No matter how great a software, the "Try before you buy" slogan is way too powerful to resist by weak (and sometimes poor) consumers.
But can cracking actually have any benefits? Does access to free software actually help in spreading a software? We all know that the network effect is really strong in the software industry. People use a certain software often not because it is the best in the market but because it is almost an industry standard, and to sometimes remain compatible with others around them. There is a school of thought that believes that software cracking could actually be beneficial to the software industry by allowing people — who were never going to buy your product otherwise — to use your product and thus helping make it popular. It is a point of debate which really needs to be researched with real data.