Reverseme: Easy Windows
June 8, 2010 1 Comment
To get back into the groove, I decided to try a crackme. After searching far and wide, I can’t seem to find where I got this from, other than crackmes.de. One of my favorite sites.
Crackme.zip <– here it is in case it’s deleted.
And the solution is, with no analysis:
#include <iostream> #include <string> using namespace std; int add_name_chars(string name) { int total = 0; for (int i=0; i<name.length(); i++) { total += name[i]; } return total; } int main() { string name; cout<<"Name: "; cin>>name; unsigned int ser1 = 31 * add_name_chars(name) / 629u + 44431400; while (ser1 > 0x3b9ac9ff) { ser1 /= 10; } cout<<"Serial 1: "<<ser1<<endl; unsigned int ser2 = 82 * ser1 - 3; while (ser2 > 0x1869f) { ser2 /= 10; } cout<<"Serial 2: "<<ser2<<endl; return 0; }
Ok, one hint. All the logic is at 004013BC. This was rated as 1, for newbies, but it still took me awhile to figure out. I thought it was fun.