| |
Keygen
Synonyms: key generator
Terminology | Dictionary | Explanation
A keygen is a small program that will generate a key or serial/registration number for a piece of software. The word keygen is a truncation of key generator. A serial number is an unique number applied to a product, which functions as verification of the product. The advantage of using a keygen (as opposed to just finding a serial), is that the generated key will be unique, (as it is generated on the spot using the same methods as the software vendor) and not traceable or in use by the legitimate owner.
Typically software requests a serial number during the installation, or when the software is started. 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. A problem with this is if the company has a database with all possible codes put in it. No generated codes could work unless you hack right into the database.
Downsides
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.
1. 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.
2. The software developers only accepts 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.
3. 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.
4. The keygen creates a valid key, but the key is already in use by either the person who is using the key legally or someone whose keygen program generated the same key. This is used primarily with games with online support. This generally makes it impossible to use an online game reliably with an illicit key, as the odds of finding a key that is unused most of the time are low. Due to this, certain filesharing communities may have a "key exchange" forum where people trade software keys they do not use or no longer need for keys for applications which they wish to use.
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, MMOGs are not usually subject to piracy.
|
|