Software Security methods
- Fixed Serial Number: In this method the software will ask for a
serial number on installation or during the 1st run. Serial number
could be distributed easily. Indeed the serial number is just to
inform the user this is none free software and he should bought it. - Activation Code: In this method the software will generate a machine
id and required an activation code from the user which could be
getting from the vendor. Cracking of the software may be performed
by debugger or by partial decompiling. - Internet Activation: Same as activation code put the activation will
run through internet. Cracking may be done by injecting wrong
interties in host file to forward the activation page to local or
wrong page, or even by a custom DNS forwarder - Dongle: the provider will provide a small hardware piece with could
be detected by the software. The dongle will contains some info to
be used for a special version or software. Cracking maybe done by
hacking the communicating library between software and dangle. - Protected CD: The installation can be run only from the original
protected CD which maybe protected by laser generated bad sectors or
some invalid contents or writing data after CD end mark. Cracking
maybe done by coping the CD using special program or by cracking
installation process. - Flash USB memory: The software may use the physical number of the
flash memory and compare it to database before run or write a part
of the software code on none assigned area of the flash disk.
Cracking may be done by hacking the software. After sell support:
Some software provider provides a very good support so the buyer
will not try to get cracked software. - Direct installing method: some provider will install the software by
a developing company employee and no install application is
distributed.
Decompiling
- To decompile is to convert executable (ready-to-run) program code
into some form of higher-level programming language. - The resulting code can be read by a human.
- De-compilation is a type of reverse engineering that does the
opposite of what a compiler does. - The tool that accomplishes this is called a de-compiler.
- A similar tool, called a disassembler, translates object code into
assembler language. De-compilation was first used in the 1960s to
facilitate the migration of a program from one platform to another. - De-compilation is not always successful.
- De-compilation is sometimes used unethically, to reproduce source
code for reuse or adaptation without permission of the copyright
holder. - Programs can be designed to be resistant to de-compilation through
protective means such as obfuscation.