Crackme

A crackme is a small computer program designed to test a programmer's reverse engineering skills.

However, they can sometimes be more challenging because they may use advanced packing or protection techniques, making the underlying algorithm harder to analyze and modify.

A keygenme is specifically designed for the reverser to not only identify the protection algorithm used in the application but also create a small key generator (keygen) in the programming language of their choice.

For example, during validation, they might generate the correct key internally and compare it to the user's input.

Anti-debugging and anti-disassembly routines are often used to confuse debuggers or render disassembly output useless.

An example of a keygenme.