Any cracking career is supposed to start with solving simple crackme’s. I’ve not been doing it all the time, but I’ve solved several of them from the simplest to a very hard one which required some math knowledge ðŽ. This allowed me to craft some sort of algorithm I would like to share."
To start with, they all are mostly all about finding some serial of code. This serial or code can be kept somewhere in memory (simple case) or generated beforehand and you will need to reverse the algorithm in order to get this done.
CrackMe Algorithm
Look at the strings, they are very useful sometimes. To be honest, these are the most useful for the cracker pieces of most programs. fs strings
and f
in radare2
or rabin -zz
Find xrefs for the strings of interest axt @ str.blahblah
Determine the input’s length. All the crackme’s I’ve encountered so far check the length of the imput first. And it always was a fixed length.
There is always the easiest way (cheating) - patch the conditional jump to the success string. However, it’s not that great. What is - is actually reversing the algorithm of serial generation and writing a keygen. I am about to post several articles about some of the crackme’s I’ve managed so far.
References
[1] Simple crackmes from exel@b (currently down, that’s why the link is for web archive).