First of all, thanks Muad for all your help, that live tutorial rox =] Im adding some code to the crackme to fix the bug... Ill show to you guys as soon as I finish it.
Second, C_DKnight, its not a hard-coded serial... check it out

This is how Ive cracked the splash,
00401000 public start
00401000 start proc near
00401000 push 0
00401002 call j_GetModuleHandleA
00401007 mov dword_403074, eax
0040100C push 0
**40100E push offset sub_401165 Thats the DlgProc (Kayaker explains it in this same forum, another thread

00401013 push 0
00401015 push offset aSplash ; "SPLASH"
then
00401165 push ebp
00401166 mov ebp, esp
00401168 cmp [ebp+arg_4], 110h
0040116F jnz short loc_401197 ; We dont want to go here, we want to jump this code to 40119D
00401171 push 0
00401173 push 3E8h
00401178 push 3F3h
0040117D push [ebp+arg_0]
00401180 call j_SetTimer
---
00401197 cmp [ebp+arg_4], 10h
0040119B jnz short loc_4011C2
0040119D push 0
Why 40119D and not 401197? Because 401197 is handleing the WM_CLOSE event, and as [ebp+arg_4] is NOT 10h, its 110h, it would jump out of the code we want. So I changed two bytes at 00401171 push 00 (6A00) to jmp 40119D (EB2A)
and it works =]
btw, check the EB2A, Im almost sure thats the opcode
AirW0lf
---