------------------[Artur Dend's CrackMe 2]------------> Crackme: Artut Dends' s Crackme2 Autor:Evilcry E-Mail:evilcry@virgilio.it Site: http://abcd6.interfree.it Chan: #cryptorev 00401101 push offset unk_403080 ;Address buffer of name 00401106 push 0BB8h 0040110B push [ebp+arg_0] 0040110E call j_GetDlgItemTextA 00401113 mov esi, eax ;Mov lenght of name in ESI 00401115 lea eax, [ecx] 00401117 cmp esi, 5 ;Check if the name is smaller the 5 chars 0040111A jge short loc_401134 ;If name is Greater than 5, let' s continue; 0040111C push 40h ;Else Error!! 0040111E push offset aError 00401123 push offset aError 00401128 push [ebp+arg_0] 0040112B call j_MessageBoxA 00401130 xor eax, eax 00401132 jmp short locret_401174 00401134 ; --------------------------------------------------------------------------- 00401134 00401134 loc_401134: 00401134 push 14h 00401136 push offset unk_403280 ;Address buffer of serial 0040113B push 0BB9h 00401140 push [ebp+arg_0] 00401143 call j_GetDlgItemTextA 00401148 mov eax, offset unk_403080 ;Move in eax address's name 0040114D mov ebx, offset unk_403280 ;move in ebx the address's serial 00401152 mov ecx, esi ;Move in ecx lenght of name -------------------------------------------------------------- 00401154 loc_401154: 00401154 mov dl, [eax] ;Point to the name' s field 00401156 sub dl, cl ;Subtract the char with the lenght of name' s field 00401158 cmp [ebx], dl ;If not equals, Beggar_Off..... 0040115A jnz short locret_401174 0040115C inc eax ;incrase name's pointer 0040115D inc ebx ;incrase serial's pointer 0040115E loop loc_401154 ;Loop until the name is finished 00401160 push 40h 00401162 push offset aArturdentsCrac ; "ArturDents CrackMe#2" 00401167 push offset aYeahYouDidIt ; "Yeah, you did it!" 0040116C push [ebp+arg_0] 0040116F call j_MessageBoxA First, sorry for my bad english :)). Cm' s routine is very simple,the characters of name inserted, are subtracted with the lenght of name' field. Byezzz