Keygen
From Wikipedia, the free encyclopedia
The examples and perspective in this article or section may not represent a worldwide view of the subject. Please improve this article or discuss the issue on the talk page. |
This article or section is in need of attention from an expert on the subject. WikiProject Law or the Law Portal may be able to help recruit one. |
This article does not cite any references or sources. (March 2007) Please help improve this article by adding citations to reliable sources. Unverifiable material may be challenged and removed. |
A keygen (a portmanteau of "key generator") is a small program that will generate a cryptographic key for data encryption. An example is the ssh-keygen.
Programs that generate valid CD keys or serial/registration numbers for a piece of software are also commonly called keygens. These are made available by software cracking groups for free download on various websites dedicated to software piracy.
Contents |
[edit] How registration key generators work
Typically number only during installation. The installation software applies an algebraic expression to the key entered to validate the key. As an example, the algorithm may define that a key entered must contain 5 numbers that have a checksum of 25, and that the key must also contain 3–5 letters that, when mapped into their numerical equivalents, have a sum of 42.
In order to write a keygen, the author typically uses a disassembler to look at the raw assembly code of the program they are writing the keygen for, checking either the software itself or the installer. Once they have access to the program's code, they can locate the subroutine(s) responsible for verifying that the key entered is valid. Using this knowledge, they can reverse engineer the algorithm used to generate valid keys, which is then incorporated into the keygen.
[edit] Problems with keygens
- See also: Product activation
Legal issues aside, there are two major issues in using keygens: Product activation and online key verification.
Keys generated with a key generator may not work with software that is used online, including downloading software updates. This is because the user must confirm their serial number every time the software connects to the server, and the key may be invalid for various reasons.
One reason is that the cracker may have misinterpreted the original algorithm, creating a key that was "good enough" to let the software be installed, but not letting all possible future generated keys be valid.
Another reason may be that the software developers only accept keys that they know were distributed with the media during production, or had been issued with an online registration, causing a cryptographically correct key to still be denied.
A third reason could be a secondary unpublished algorithm that is used by the vendor, e.g., to extend the previous example, the characters 0, 7, 9, C, and K are never allowed. The software that confirms the key on the user's machine does not know these numbers and characters are not allowed, and will accept the keygen output, but the online confirmation fails.
Keys for massively multiplayer online games are different; usually each key is uniquely generated by the producer and included with the product, usually in a tamper-proof medium such as a scratch card or tamper-proof envelope. These keys will usually become uniquely linked to a certain game account upon usage and are rendered "useless" by this process. Therefore, MMORPGs are not usually subject to piracy.
Keygens may also contain viruses (depending on whom they are downloaded from). When you open them and have them generate a key, sometimes the key is useless and the only thing the keygen does is install harmful software on your computer.
[edit] Actions taken by software developers
Software developers have tried to prevent piracy by using 'Product Activation', which requires the user to connect to the internet or call a number in order to make a program usable. Newer keygens also contain a method to bypass the product activation. Some software manufacturers like Adobe include telephone activation which requires you to give a special code when you call. A special method on keygens allows you to type the number given by the product and generate the activation code and you would then type that into the software. Some software developers, such as Norton, have worked around this by not including this feature or making it harder to locate in the program's code. This makes it harder for cracking groups to write an activation code.
Keygens are widely available but the legality of their use differs on an international scale.