好友
阅读权限30
听众
最后登录1970-1-1
|
小黑冰
发表于 2008-6-24 02:13
先分析算法 然后暴破的思路就出来了`~~~` 也可以逆 我们输入的假名为woaini 假码为123456789
00401006 |. >push edi
00401007 |. >cmp [arg.2],1 ; 6与1比较假名位数
0040100B >jnb short CrackMe.00401025 ; 大于跳 想暴破就改为JMP
0040100D |. >push 0 ; /Style = MB_OK|MB_APPLMODAL
0040100F |. >push CrackMe.00403030 ; |提示
00401014 |. >push CrackMe.00403035 ; |用户名不能为空!
00401019 |. >push 0 ; |hOwner = NULL
0040101B |. >call <jmp.&user32.MessageBoxA> ; \MessageBoxA
00401020 |. >pop edi
00401021 |. >leave
00401022 |. >retn 14
00401025 |> >mov esi,[arg.1] ; 把假名放进ESI
00401028 |. >lea edi,[local.10]
0040102B |. >xor ecx,ecx ; 异或清0
0040102D |. >mov eax,[arg.2] ; 把假码长度放进EAX
00401030 |. >mov byte ptr ds:[eax+edi],0 ; 假码位数+3
00401034 |. >jmp short CrackMe.00401040
00401036 |> >/movzx eax,byte ptr ds:[ecx+esi]
0040103A |. >|add al,1
0040103C |. >|mov byte ptr ds:[ecx+edi],al
0040103F |. >|inc ecx ; 指向ECX下一个字节
00401040 |> > cmp ecx,[arg.2]
00401043 |.^ >\jb short CrackMe.00401036 这里不断垒加
00401045 |. >push [arg.3] ; /把假码压进去
00401048 |. >lea eax,[local.10] ; |在这里看到xpbjoj真码咯
0040104B |. >push eax ; |String1
0040104C |. >call <jmp.&kernel32.lstrcmpA> ; \关键CALL
00401051 |. >or eax,eax
00401053 >jnz short CrackMe.0040106A ; 关键跳噢`~~` 暴破改为NOP
00401055 |. >push 0 ; /Style = MB_OK|MB_APPLMODAL
00401057 |. >push CrackMe.00403030 ; |提示
0040105C |. >push CrackMe.00403046 ; |恭喜你,注册成功!
00401061 |. >push 0 ; |hOwner = NULL
00401063 |. >call <jmp.&user32.MessageBoxA> ; \MessageBoxA
00401068 |. >jmp short CrackMe.0040107D
0040106A |> >push 0 ; /Style = MB_OK|MB_APPLMODAL
0040106C |. >push CrackMe.00403030 ; |提示
00401071 |. >push CrackMe.00403059 ; |注册失败,请继续努力!
通过分析得:这个软件是注册名随便让我们定的 然后把这个注册名发给作者 然后作者给你算法结果为xpbjoj
注册也可以暴破`~~`、 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|