updated Nov 11, 2009 12:08 pm | 58,351 views
Software cracking is the process of bypassing the registration and payment options on a software product to remove copy protection safeguards or to turn a demo version of software into a fully functional version without paying for it.
Cracking software generally requires loading the executable into a hexadecimal code editor and directly modifying it. The executable is then run in place of the original.
Software cracking is considered illegal and cracked software is often called pirated software. Cracked software generally has had the executable modified and can cause undesirable behaviour.
The most common software crack is the modification of an application's binary to cause or prevent a specific key branch in the program's execution. This is accomplished by reverse engineering the compiled program code using a debugger until the software cracker reaches the subroutine that contains the primary method of protecting the software (or by disassembling an executable file with a program such as IDA). The IDA (Interactive Disassembler), as a disassembler commonly used for reverse engineering, performs the process of automatic code analysis thereby leveraging cross-references between code sections and interactively identifying the parameters of API calls. Normally, the software cracker using an IDA begins with tracking an automatically generated disassembly listing and then renames and annotates the information to the listing, until the algorithm of the software is traced to be effectively reverse-engineered.
The binary is then modified using the debugger or a hex editor in a manner that replaces a prior branching opcode with its complement or a NOP opcode so the key branch will either always execute a specific subroutine or skip over it. Almost all common software cracks are a variation of this type.
A good example of this technique is a crack that removes the expiration period from a time-limited trial of an application. These cracks are usually programs that patch the program executable and sometimes the .dll or so linked to the application.
Similar cracks are available for software that requires a hardware dongle. A company can also break the copy preventions of programs that they have legally purchased but that are licensed to particular hardware, so that there is no risk of downtime due to hardware failure (and, of course, no need to restrict oneself to running the software on bought hardware only).
In other cases, it might be possible to decompile a program in order to get access to the original source code or code on a level higher than machine code. This is often possible with scripting languages. An example is cracking (or debugging) on the .NET platform.
References: Software Cracking
Related White Papers and Webcasts
Cracking Passwords in Real Time (Blogs)
Software selection (Groups)
Microsoft SMS 2003: Maintaining SMS Systems (Training)
Microsoft SMS 2003: The Pre-planning Phase (Training)
Disclaimer: IT Wiki is a service that allows content to be created and edited by anyone in the community. Content posted to this site is not reviewed for correctness and is not supported by Toolbox.com or any of its partners. If you feel a wiki article is inappropriate, you can either correct it by clicking "Edit" above or click here to notify Toolbox.com.