Crackme
A crackme (often abbreviated by cm) is a small program designed to test a programmer's reverse engineering skills.
They are programmed by other reversers as a legal way to "crack" software, since no intellectual property is being infringed upon.
Crackmes, Reversemes and Keygenmes generally have similar protection schemes and algorithms to those found in commercial protections. However, due to the wide use of packers/protectors in commercial software, many crackmes are actually more difficult as the algorithm is harder to find and track than in commercial software.
A Keygenme specifically is designed for the reverser to not only find the algorithm used in the application, but also write a small Keygen in the programming language of their choice. Although, most keygenmes properly manipulated can be self-keygenning.
Often anti-debugging and anti-disassemble routines are used to confuse debuggers or make the disassembly useless. Code-obfuscation is also used to make the reversing even harder.
External links
- crackmes.de - A site for testing reversing skills. Crackmes range from Very Easy to Very Hard [1-9] for many Operating systems !
- tdhack.com - includes cryptographic riddles, hackmes and software applications to crack for both Windows and Linux. Polish and English languages are supported.
- www.pelock.com/articles/how-to-write-a-crackme-for-a-ctf-competition - complete tutorial how to write a CrackMe in C++
Programs
- Ollydbg - Used by beginners and experienced people