# Newbie Keygenning 1

This is a random very old crackme I found when I was bored with assignments, which is pretty easy and thought of sharing with you. Doing crackmes one by one ๐ Download: https://www.mediafire.com/?351rp7o9qmf97js

View post on imgur.com

After opening in Olly and checking the string references we can see the congratulations string.

View post on imgur.com

After following the string we see the following disassembly.

View post on imgur.com

00401171 is our bad boy. If we check the jumps we see that first the string is being compared to 3 and

```CMP DWORD PTR SS:[LOCAL.10],3 	; compare with 3
JLE SHORT 00401171 				; jump if less than or equal to bad boy
CMP DWORD PTR SS:[LOCAL.10],32 	; compare with 50
JGE SHORT 00401171 				; jump if greater than or equal to bad boy
```

View post on imgur.com

Next we have the algorithm for generating the serial and then it compares our entered serial with it. Letโs analyze it.

View post on imgur.com

```MOVSX EAX,BYTE PTR SS:[ECX+EBP-0B8] ; place the string byte in EAX, string[index++]
INC ECX 					        ; increment the counter
XOR EAX,ECX							; xor eax with ecx
CMP ECX,DWORD PTR SS:[LOCAL.10] 	; compare ecx with the length
JNE SHORT 0040110C					; if not zero, loop
IMUL EAX,EAX,6						; Multiply EAX by 6 and store in EAX
SHL EBX,7							; shift left 7, EBX << 7 or EBX * (2 ** 7)
```

Hereโs the high level code of the algorithm written in C. So there it is the keygen and it says to write a tutorial so I did it ๐

View post on imgur.com

View post on imgur.com

## 3 thoughts on “Newbie Keygenning 1”

1. Damm that is an very old crackme mate.
UCF/ID were some pretty decent groups back in the day =)

• Yep 2002 I guess

2. old but gold . thanks osanda