00401000 /$ 55 push ebp
00401001 |. 8BEC mov ebp, esp
00401003 |. 83C4 D8 add esp, -28
00401006 |. 57 push edi
00401007 |. 837D 0C 01
cmp
dword ptr [ebp+C], 1 ; 用户名位数与1比较
0040100B |. 73 18 jnb short 00401025 ; 大于则跳
0040100D |. 6A 00 push 0 ;
/Style
= MB_OK|MB_APPLMODAL
0040100F |. 68 30304000 push 00403030 ; |提示
00401014 |. 68 35304000 push 00403035 ; |用户名不能为空!
00401019 |. 6A 00 push 0 ; |hOwner = NULL
0040101B |. E8 36030000 call <jmp.&user32.MessageBoxA> ; \MessageBoxA
00401020 |. 5F pop edi
00401021 |. C9 leave
00401022 |. C2 1400 retn 14
00401025 |> 8B75 08 mov esi, dword ptr [ebp+8]
00401028 |. 8D7D D8 lea edi, dword ptr [ebp-28]
0040102B |. 33C9 xor ecx, ecx
0040102D |. 8B45 0C mov eax, dword ptr [ebp+C]
00401030 |. C60438 00 mov byte ptr [eax+edi], 0
00401034 |. EB 0A jmp short 00401040
00401036 |> 0FB60431
/movzx
eax, byte ptr [ecx+esi] ; 逐位读取用户名,将每位用户名向后一位作为注册码
0040103A |. 04 01 |add al, 1
0040103C |. 880439 |mov byte ptr [ecx+edi], al
0040103F |. 41 |inc ecx
00401040 |> 3B4D 0C
cmp
ecx, dword ptr [ebp+C]
00401043 |.^ 72 F1 \jb short 00401036
00401045 |. FF75 10 push dword ptr [ebp+10] ;
/String2
00401048 |. 8D45 D8 lea eax, dword ptr [ebp-28] ; |
0040104B |. 50 push eax ; |String1
0040104C |. E8 47030000 call <jmp.&kernel32.lstrcmpA> ; \假码与真码比较
00401051 |. 0BC0 or eax, eax
00401053 |. 75 15 jnz short 0040106A ; 爆破点,nop!!
00401055 |. 6A 00 push 0 ;
/Style
= MB_OK|MB_APPLMODAL
00401057 |. 68 30304000 push 00403030 ; |提示
0040105C |. 68 46304000 push 00403046 ; |恭喜你,注册成功!
00401061 |. 6A 00 push 0 ; |hOwner = NULL
00401063 |. E8 EE020000 call <jmp.&user32.MessageBoxA> ; \MessageBoxA
00401068 |. EB 13 jmp short 0040107D
0040106A |> 6A 00 push 0 ;
/Style
= MB_OK|MB_APPLMODAL
0040106C |. 68 30304000 push 00403030 ; |提示
00401071 |. 68 59304000 push 00403059 ; |注册失败,请继续努力!
00401076 |. 6A 00 push 0 ; |hOwner = NULL
00401078 |. E8 D9020000 call <jmp.&user32.MessageBoxA> ; \MessageBoxA
0040107D |> 33C0 xor eax, eax
0040107F |. 5F pop edi
00401080 |. C9 leave
00401081 \. C2 1400 retn 14