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.
http://crackmes.de/users/tweety100/tweetys_serialme/ <– here's the link