Reverseme: Easy Windows Using Reflector
June 10, 2010 Leave a comment
http://crackmes.de/users/d0min4ted/keygenme_by_d0min4ted/
In case the link goes away, here is a zip of the executable. crackme
I cheated on this one and used reflector. This was an excuse for me to try reflector out… so I started with that in mind.
The Checking code ends up being in crackme->WindowsFormsApplication4->Form1. You can deduce what most the buttons do. The relevant one turns out to be in asd. The keygen is basically straight from the verifying function found there, written in C#.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace keygen
{
class Program
{
static void Main(string[] args)
{
Console.Write("Name: ");
string Name = Console.ReadLine();
if (Name.Length < 4)
{
Console.WriteLine("Name must be 4 characters");
Environment.Exit(0);
}
string str3 = "";
char[] chArray = Name.ToCharArray();
foreach (char ch in chArray)
{
int num2 = Convert.ToInt32(ch);
string str4 = string.Format("{0:X}", num2);
str3 = str3 + str4;
}
char[] array = str3.ToCharArray();
Array.Reverse(array);
string str5 = new string(array);
if (str5.Length > 9)
{
str5 = str5.Remove(9, str5.Length - 9);
}
decimal num4 = Convert.ToDecimal(Convert.ToInt32(str5));
double num5 = Math.Pow((double)Name.Length, 3.0);
decimal num6 = Math.Round((decimal)(num4 * Convert.ToDecimal(num5)), 0);
Console.WriteLine(num6);
}
}
}