downloadbrowsemucki's crackme#8

Download crackme8.zip, 396 kb (password: crackmes.de)
Browse contents of crackme8.zip

This is my 8th crackme (keygenme), written in MASM.

- create a keygen
- and submit a tutorial
- the serial has to work outside the debugger

tested on WinXP but it should also work on other windows os.

Source included. Password is the valid serial for mucki.

Regards,

mucki

Difficulty: 2 - Needs a little brain (or luck)
Platform: Windows
Language: Assembler

Published: 21. Oct, 2010
Downloads: 675

Rating

Votes: 3
Crackme is quite nice.

Rate this crackme:

Send a message to mucki »

View profile of mucki »

Solutions

Solution by Vallani, published 27. oct, 2010; download (219 kb), password: crackmes.de or browse.

Vallani has rated this crackme as quite nice.

Submit your solution »

Discussion and comments

Voik
22. Oct 2010
This will need CRC32 bruteforce, right? It must return zero, i think.
mucki
Author
22. Oct 2010
You don't need bruteforce to solve it. The solution is a little bit different (it's more an exploit). Watch the exception handler.
Killswitch
22. Oct 2010
having made these assumptions:

hash_x = xor hash_serial, hash_name

Z = hash_name / hash_x - V - Z = 0

hash_name / hash_x = 0 | *hash_x

hash_name = 0

this is because the serial is only accepted if eax is 0 in the end, hence Z = 0.
This would mean that the names would have to be very limited so this doesnt seem very right to me, and the exception handler refers to mov eax, -1, which isnt accepted as a valid solution either, so i'm pretty much stuck after a long time of reversing there.

could you tell me if this is the right way to go, please?
Killswitch
22. Oct 2010
i think i might be on the right way..
you have to manipulate the serial to overwrite the exception handler and set it to right after the mov eax, -1?
mucki
Author
22. Oct 2010
I had another address in mind. After causing an exception you should also restore the stack because it's often in a mess.
Killswitch
22. Oct 2010
alright, so i basically managed to buffer overflow the push now and it "works" ( given a good serial+name ).
trying to write the keygen now
Vallani
22. Oct 2010
I like that KeyGenMe. Nice Work mucki.
Vallani: "OTP2tQ00@h#!@"
Solution follows after I've got some sleep. Initiating shut down sequence for me now :) .
Xspider
23. Oct 2010
so the story begins from here 004020C8
love this kgnme thank you mucki :D
SasukeHa
23. Oct 2010
This is Very Lame Crack ME

Just put same value for username and password
for example

user: SasukeHa
pass: SasukeHa

I'd show Vaild serial
PUSH 00402000 ; /String2 = "SasukeHa"
PUSH 00402011 ; |String1 = "SasukeHa"
CALL <JMP.&kernel32.lstrcmpA> ; \KERNEL32.lstrcmp
TEST EAX,EAX
MOV EAX,10
MOV EBX,OFFSET 0040705C ; ASCII "INVALID SERIAL"
JNE SHORT 0040108B ;does user=pass ?
ADD EAX,30
ADD EBX,2 ;yes user= ebx here store test INVALID add 2 so it'd omit the 2 first letters -_- turn to VALID
PUSH EAX ; /Type
PUSH OFFSET 00407039 ; |Caption = "Information"
PUSH EBX ; |Text
PUSH DWORD PTR SS:[ARG.1] ; |hOwner => [ARG.1]
CALL <JMP.&user32.MessageBoxA> ; \USER32.MessageBoxA

Sorry but this is one of the worst crackmes I've seen

turn to solved please
mucki
Author
23. Oct 2010
@SasukeHa: - the serial has to work outside the debugger

to get access to the source the last characters must be ==@h#!@
Voik
23. Oct 2010
Name: mucki
Serial: pgqX=w==@h#!@

Very nice crack me! Tutorial soon! (:
Voik
23. Oct 2010
Name: mucki
Serial: pgqX=w==@h#!@

Very nice crack me! Tutorial soon! (:

mucki = 03970AA6

------------------------------

00970AA6
970AA600
00A60A97

101001 100000 101010 010111
29 - 20 - 2A - 17
p - g - q - X

-------------------------------

00000003
00000300
00030000

000000 110000 000000 000000
00 - 30 - 00 - 00
= - w - = - =

------------------------------

"pgqx=w==" + "@h#!@" = "pgqX=w==@h#!@"
mucki
Author
23. Oct 2010
ok i'm sorry that i didn't really check the base64 algo so there are many possible solutions. the password for the source is pgqXAw==@h#!@
tamaroth
Moderator
25. Oct 2010
tamaroth
ufRG+gRG@h#!@

quite funny with the SEH manipulation, kudos for that ;-)
|CraniX|
26. Oct 2010
Name " "
Serial " "

Didn't have to crack :P
|CraniX|
26. Oct 2010
Sorry that's not outside the debugger.

You may leave your comment, thoughts and discuss this crackme with other reversers here.
Acting childish will not be tolerated.
HTML and such will be left as-is, so don't try.