A crackme is a small program designed to test a programmers reverse-engineering skills. Crackme's and Keygen's have similar protection schemes and algorithms to those found in comercial protections.