看到密码学版块中有个密码学算法CrackMe,于是随便下了几个看一哈!目前一把CRC32算发追码完成!现在又把MD5追码完成!教程开始:第1步:先下载MD5看(图1)然后打开输入假帐号密码看有什么提示没?有就记住提示(图2);第2步:OD载入查找错误提示(图3);第3步:分析帐号限制:
00402864 . 68 00010000 PUSH 100 ; /Count = 100 (256.)
00402869 . 51 PUSH ECX ; |Buffer
0040286A . 68 E8030000 PUSH 3E8 ; |ControlID = 3E8 (1000.)
0040286F . 56 PUSH ESI ; |hWnd
00402870 . FFD5 CALL EBP ; \GetDlgItemTextA
00402872 . 8DBC24 0C0100>LEA EDI,DWORD PTR SS:[ESP+10C]
00402879 . 83C9 FF OR ECX,FFFFFFFF
0040287C . 33C0 XOR EAX,EAX
0040287E . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00402880 . F7D1 NOT ECX
00402882 . 49 DEC ECX
00402883 . 83F9 01 CMP ECX,1 ; 比较帐号长度
00402886 . 73 1F JNB SHORT MD5Crack.004028A7 ; 大于1位就跳!小于1位就显示下面的帐号
00402888 . 6A 40 PUSH 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
0040288A . 68 A4D14000 PUSH MD5Crack.0040D1A4 ; |注册提示
0040288F . 68 8CD14000 PUSH MD5Crack.0040D18C ; |用户名不能为空请输入!
00402894 . 56 PUSH ESI ; |hOwner
00402895 . FF15 D4B04000 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
0040289B . 5F POP EDI
0040289C . 5E POP ESI
0040289D . 33C0 XOR EAX,EAX
0040289F . 5D POP EBP
004028A0 . 81C4 00030000 ADD ESP,300
004028A6 . C3 RETN
004028A7 > 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
004028AB . 68 00010000 PUSH 100
004028B0 . 52 PUSH EDX
004028B1 . 68 07040000 PUSH 407
004028B6 . 56 PUSH ESI
004028B7 . FFD5 CALL EBP
004028B9 . 8D7C24 0C LEA EDI,DWORD PTR SS:[ESP+C]
004028BD . 83C9 FF OR ECX,FFFFFFFF
004028C0 . 33C0 XOR EAX,EAX
004028C2 . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
004028C4 . F7D1 NOT ECX
004028C6 . 49 DEC ECX
004028C7 . 83F9 01 CMP ECX,1 ; 比较密码长度!同上面帐号一样!
004028CA . 73 1F JNB SHORT MD5Crack.004028EB ; 大于等于1位就跳
004028CC . 6A 40 PUSH 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004028CE . 68 A4D14000 PUSH MD5Crack.0040D1A4 ; |注册提示
004028D3 . 68 74D14000 PUSH MD5Crack.0040D174 ; |注册码不能为空请输入!
004028D8 . 56 PUSH ESI ; |hOwner
004028D9 . FF15 D4B04000 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
004028DF . 5F POP EDI
004028E0 . 5E POP ESI
004028E1 . 33C0 XOR EAX,EAX
004028E3 . 5D POP EBP
004028E4 . 81C4 00030000 ADD ESP,300
004028EA . C3 RETN
004028EB > 8D8424 0C0200>LEA EAX,DWORD PTR SS:[ESP+20C]
004028F2 . 6A 00 PUSH 0
004028F4 . 8D8C24 100100>LEA ECX,DWORD PTR SS:[ESP+110]
004028FB . 50 PUSH EAX ; 放着密码123456789
004028FC . 51 PUSH ECX ; 放着帐号CrackMe
004028FD . E8 FEFCFFFF CALL MD5Crack.00402600 ; 序列号计算的CALL!进去可以看到密码!密码为:331F201C927C8100FD2021C7B55B2628
00402902 . 8D9424 180200>LEA EDX,DWORD PTR SS:[ESP+218]
00402909 . 8D4424 18 LEA EAX,DWORD PTR SS:[ESP+18]
0040290D . 52 PUSH EDX ; 真实的密码
0040290E . 50 PUSH EAX ; 输入的密码
0040290F . E8 CCFDFFFF CALL MD5Crack.004026E0 ; 调用自己的比较方式来比较密码是否正确
00402914 . 83C4 14 ADD ESP,14
00402917 . 83F8 01 CMP EAX,1
0040291A . 6A 40 PUSH 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
0040291C . 68 A4D14000 PUSH MD5Crack.0040D1A4 ; |注册提示
00402921 . 75 18 JNZ SHORT MD5Crack.0040293B ; |输入的是假密码!所以就跳到错误那里!这里改JE就是爆破拉
00402923 . 68 60D14000 PUSH MD5Crack.0040D160 ; |恭喜你,注册码正确!
00402928 . 56 PUSH ESI ; |hOwner
00402929 . FF15 D4B04000 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
0040292F . 5F POP EDI
00402930 . 5E POP ESI
00402931 . 33C0 XOR EAX,EAX
00402933 . 5D POP EBP
00402934 . 81C4 00030000 ADD ESP,300
0040293A . C3 RETN
0040293B > 68 48D14000 PUSH MD5Crack.0040D148 ; |注册码错误,继续加油!
00402940 . 56 PUSH ESI ; |hOwner
00402941 . FF15 D4B04000 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
00402947 . 5F POP EDI ; 0012FBA4
00402948 . 5E POP ESI
00402949 . 33C0 XOR EAX,EAX
大家看的时候从地址开始看就可以看清楚拉!现在来试哈新密码看正确不!
帐号:CrackMe
密码:331F201C927C8100FD2021C7B55B2628
看(图4)
希望能给给邀请码!我不经常在!希望可以明后天给!谢谢大家支持
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!