Jump to content
Tuts 4 You

[Keygenme] Woot332's KeygenMe


Recommended Posts

Posted

Easy keygenme have phun.
Rules keygen only no patching or serial fishing.

 

base.rar

Posted

Good idea to remove the EP and to break some of the PE in order to avoid debug :)


Serial is easy to find and generate.


 


Thanks


Posted (edited)

Such a nice protection - and then you ruin it by calculating correct serial.. :(

 

Keygen attached, relevant source code:

 

private void button1_Click(object sender, EventArgs e){   // get username   byte[] username = Encoding.ASCII.GetBytes(textBox1.Text);    // calc CRC part 1   byte[] part1 = BitConverter.GetBytes(Crc32.CRC32Bytes(username));    // calc CRC part 2   Array.Resize(ref username, 4);   byte[] part2 = BitConverter.GetBytes(Crc32.CRC32Bytes(username));    // show the serial   string serial = "";   foreach (byte b in part1)   {      serial += String.Format("{0:X2}", ;   }   foreach (byte b in part2)   {      serial += String.Format("{0:X2}", ;   }   textBox2.Text = serial;}
EDIT:removed garbage line

kg_woot332.zip

Edited by kao
Posted

Such a nice protection - and then you ruin it by calculating correct serial.. :(

 

Keygen attached, relevant source code:

 

private void button1_Click(object sender, EventArgs e){   // get username   byte[] username = Encoding.ASCII.GetBytes(textBox1.Text);    // calc CRC part 1   byte[] part1 = BitConverter.GetBytes(Crc32.CRC32Bytes(username));    // calc CRC part 2   Array.Resize(ref username, 4);   byte[] part2 = BitConverter.GetBytes(Crc32.CRC32Bytes(username));    // show the serial   string serial = "";   foreach (byte b in part1)   {      serial += String.Format("{0:X2}", ;   }   foreach (byte b in part2)   {      serial += String.Format("{0:X2}", ;   }   textBox2.Text = serial;}
EDIT:removed garbage line

 

Nice job kao :thumbs:

SmilingWolf
Posted

I had fun unpacking it, a bit less keygenning it... but a KeygenMe is a KeygenMe, so here is my solution.


Thanks for the challenge :)


 


Proof.png


Keygen-STC.7z

  • Like 3
Posted (edited)

Generate proc hWnd:HWND

push sizeof pName

push offset pName

push IDC_NAME

push hWnd

call GetDlgItemText

push eax

push offset pName

push 0

call CRC32_

bswap eax

mov ebx,eax

push 4

push offset pName

push 0

call CRC32_

bswap eax

push eax

push ebx

push chr$ ("%X%X")

push offset buffer

call wsprintf

push offset buffer

push IDC_KEY   

push hWnd

call SetDlgItemText

ret

Generate endp

No len checking :prop:

Edited by ragdog
  • Like 1
Posted

I liked this but than I saw the generation algorithm which was simply too easy.


Anyways thanks for the challenge, always appreciated.


As usual nice solution guys.


(Don't think there is a point in showing mine.. same thing in different language).

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...