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); } } }