Disclaimer : This article may not be completely accurate and is not extensive. It is based on my understanding of the topic, which in an ideal world, is kinda limited.
Software cracking uses reverse engineering. Reverse engineering involves taking a mechanical device, software program or electronic device apart, understanding its workings, and then attempt to create something out of that. It has been a common practice in the world of mechanics and electronics since 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 great article by Mathew Schwartz, Reverse-Engineering, Computerworld, November 12, 2001)
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 had to use the most innovative of solutions to prevent any form of copying. (Some of the methods are listed on - Experiencefestival, Copy protection for computer software)
Circumventing such 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 one step ahead, and all for the glory and challenge.
As I have mentioned in an earlier post, the apparent disregard for laws to go one up against rivals in the cracking scene was interesting. It was the 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. But moving on to the more technical aspects.
The most common software cracking involved altering the binary file to prevent a key branch from occuring. In assembly language, it often meant simply altering a je (jump on equal) command to a jne (jump on not equal) command. Finding the right branch was the challenge. But that was for the earlier simpler programs.
It has always been a race out there. The software industry trying to stay one step ahead, and for good reason. It is said that piracy has cost the software industry over 20 billion dollars in revenue, every year. That is more than the GDP of any developing country.
Reverse Engineering Tools
Some of the tools of the trade were -
FileMon - Monitors files
Regmon - Monitors the registry
W32Dasm - Windows Disassembler
SoftICE - Windows Debugger
Hiew - The coolest hex editor out there
Windows API Reference, etc.
Back in the late 90s, you started off with a disassembler and hex-editor. And then you moved on to SoftIce, a kernel mode debugger that ran underneath Windows. It was a tool so powerful it was used to crack itself.
Numega, the creator of SoftIce is now gone. The plug has been pulled from under Softice too. Most software vendors had anyway implemented measures to make it harder to use SoftIce as a tool.
The most famous ones are International Network of Crackers, The Humble Guys (THG), PhrozenCrew, UCF, Core, ViRiLiTY, etc. I shall talk about each one in short articles soon.
I shall also talk about how the 'demo scene' came into existence. A spin-off from the actual cracking. Actually a lot more fun.
The resources are old and probably will not help anyone who intends to be a cracker nowadays. But it is history. And it needs to be read -
The best resource for tutorials on cracking Cracking 4 Newbies
The New2Cracking website download
Reverse Engineering Team
Reverse Engineering Resources
The Art of Assembly Language - The most comprehensive and famous guide in the history of software cracking.
CrackZ's Reverse Engineering Page
Methods to prevent cracking - Cracking, The Anti by Dorian Bugeja