Load the crackme, and enter any random serial into the
textbox. Now, pop up the Sice with "CTRL-D", and put the
breakpoint at GetWindowTextA("bpx GetWindowTextA").
Close the Sice("CTRL-D" again) and press "OK" button. When the Sice breaks, press "F11" to return to the programs
code. You'll see this piece of code....
015F:0040118B 837D1020 CMP DWORD PTR [EBP+10],20
015F:0040118F 0F859E000000 JNZ 00401233
015F:00401195 56 PUSH ESI
015F:00401196 6898204000 PUSH 00402098
015F:0040119B FF354C204000 PUSH DWORD PTR [0040204C]
015F:004011A1 E8C7000000 CALL USER32!GetWindowTextA <-- Get the serial
015F:004011A6 BB98204000 MOV EBX,00402098 ;EBX = Location of the serial
015F:004011AB FF354C204000 PUSH DWORD PTR [0040204C]
015F:004011B1 E8C3000000 CALL USER32!GetWindowTextLengthA<-- Get the lenght of the serial
015F:004011B6 8BF0 MOV ESI,EAX ;ESI = Lenght of the serial
015F:004011B8 83FE12 CMP ESI,12 ;Is the lenght 18(12h)??
015F:004011BB 755F JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011BD 803B46 CMP BYTE PTR [EBX],46 ;Is 1th char of serial "F"(46h)???
015F:004011C0 755A JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011C2 807B0169 CMP BYTE PTR [EBX+01],69 ;Is 2nd char of serial "i"(69h)???
015F:004011C6 7554 JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011C8 807B0372 CMP BYTE PTR [EBX+03],72 ;Is 4th char of serial "r"(72h)???
015F:004011CC 754E JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011CE 807B0465 CMP BYTE PTR [EBX+04],65 ;Is 5th char of serial "e"(65h)???
015F:004011D2 7548 JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011D4 807B0657 CMP BYTE PTR [EBX+06],57 ;Is 7th char of serial "W"(57h)???
015F:004011D8 7542 JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011DA 807B076F CMP BYTE PTR [EBX+07],6F ;Is 8th char of serial "o"(6Fh)???
015F:004011DE 753C JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011E0 807B0872 CMP BYTE PTR [EBX+08],72 ;Is 9th char of serial "r"(72h)???
015F:004011E4 7536 JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011E6 807B0A78 CMP BYTE PTR [EBX+0A],78 ;Is 11th char of serial "x"(78h)???
015F:004011EA 7530 JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011EC 807B0C53 CMP BYTE PTR [EBX+0C],53 ;Is 13th char of serial "S"(53h)???
015F:004011F0 752A JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011F2 807B0D75 CMP BYTE PTR [EBX+0D],75 ;Is 14th char of serial "u"(75h)???
015F:004011F6 7524 JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011F8 807B1078 CMP BYTE PTR [EBX+10],78 ;Is 17th char of serial "x"(78h)???
015F:004011FC 751E JNZ 0040121C(1) ;If not, then jump to bad section of code
015F:004011FE 6A30 PUSH 30 <-- If you pass all conditions(if your serial is
correct), you'll be here
015F:00401200 687F204000 PUSH 0040207F
015F:00401205 688B204000 PUSH 0040208B
015F:0040120A FF3548204000 PUSH DWORD PTR [00402048]
015F:00401210 E870000000 CALL USER32!MessageBoxA <-- Good guy message
015F:00401215 5E POP ESI
015F:00401216 5F POP EDI
015F:00401217 5B POP EBX
015F:00401218 C9 LEAVE
015F:00401219 C21000 RET 0010
015F:0040121C 6A30 PUSH 30(1) <--Bad section of code
015F:0040121E 68C0204000 PUSH 004020C0
015F:00401223 68D1204000 PUSH 004020D1
015F:00401228 FF3548204000 PUSH DWORD PTR [00402048]
015F:0040122E E852000000 CALL USER32!MessageBoxA <-- Bad guy message
015F:00401233 33C0 XOR EAX,EAX
015F:00401235 5E POP ESI
015F:00401236 5F POP EDI
015F:00401237 5B POP EBX
015F:00401238 C9 LEAVE
015F:00401239 C21000 RET 0010
From this section of code you can see that serial must be 18 chars long.
You can also see some letters of serial, other chars you must add
by yourself. So serial must look like this...
1st char = "F"
2nd char = "i"
3rd char = Any random
4th char = "r"
5th char = "e"
6th char = Any random
7th char = "W"
8th char = "o"
9th char = "r"
10th char = Any random
11th char = "x"
12th char = Any random
13th char = "S"
14th char = "u"
15th char = Any random
16th char = Any random
17th char = "x"
18th char =Any random
At the end, here is serial that I use to register the crackme: "FiRreEWorFxLSuEXxZ"
Hope you haven't any problems with this crackme, but....
If you still have some problems or questions you can mail us: ReFleXZ@fcmail.com