Skip to content
Search

Software cracking

lastmod 2020-10-19created 2020-10-196 edits

Software cracking is the modification of software to disable or remove features the person cracking the software does not want, usually protection methods (copy protection, protection against software manipulation), including trial/demo versions, serial numbers, hardware keys, date checks, CD checks, and annoyances such as adware and nagware.

A crack refers to the means of achieving software cracking, for example a stolen serial number or a tool that performs the cracking. Some of these tools are called keygens, patches, or loaders. A keygen is a product license generator that offers the ability to generate a valid license in your own name. A patch is a small computer program that modifies the machine code of another program. This has the advantage that a cracker can distribute only the small changed part instead of a large executable. A loader modifies the startup flow of a program, removing and bypassing the protection. A well-known example of a loader is a trainer used for cheating in games.

Distributing cracked copies is illegal in most countries. There are also ongoing lawsuits over software cracking. In some circumstances, using cracked software may be legal.

Methods

The most common way to crack software is to modify the application binary to cause or prevent a specific key branch in the program. This is made possible by reverse engineering the compiled program with a debugger. The cracker continues until reaching the subroutine that contains the key method protecting the software. The binary is then modified with a debugger or hex editor, changing the key branch opcode to its complement or to a NOP opcode, so that a particular subroutine is executed or skipped. Most software cracks are variations of this method. Proprietary software developers constantly make such modification very difficult through techniques such as code obfuscation, encryption, and self-modifying code. Even with these methods, developers struggle in the fight against software cracking. This is because it is easy for professionals to simply distribute a cracked EXE or installer to the public, so ordinary users no longer need to crack it themselves.

A specific example of this technique is removing the expiration time from a time-limited application. These cracks are usually programs that alter the program executable and the dll files linked to the application. Similar cracks are possible for software that requires a hardware dongle. A company can break the copy protection of programs it has legally purchased but that are licensed only to particular hardware. This can remove the risk of downtime caused by hardware failure.

In other cases, it is also possible to decompile a program to gain access to the original source code. This is often possible with scripting languages and languages that use JIT compilation. For example, Java bytecode is used as an intermediate language before the program is compiled to platform-dependent machine code.

Reversing protections such as SecuROM, SafeDisc, or StarForce requires crackers to invest much more time studying the protection and finding flaws in the protected code.

On the Internet, cracks for popular games and applications are available for download from countless sites. Although these cracks are used by legitimate software buyers, they are also used by people who obtained the software through illegal downloads.

See also

Favorite site

References


  1. Ultimate_Introduction_to_cracking_Software_and_how_to_protect_against_it_-Reverse_Engineering-_PiProgramming.pdf ↩

author Zer0 sitemap