好友
阅读权限30
听众
最后登录1970-1-1
|
小黑冰
发表于 2008-8-28 09:42
来吧,算法入门连载(八)
[ 录入者:admin | 时间:2008-03-09 00:42:08 | 作者:冷血书生 | 来源:http://www.crack520.cn | 浏览:141次 ]
【破解日期】 2007年2月14日 (祝天下有情人终成眷属)
【破解作者】 冷血书生
【作者邮箱】 meiyou
【作者主页】 http://www.crack520.cn
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 BytePtr's Crypto Crackme
【下载地址】
【软件大小】 75kb
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
00401B02 E8 EB000000call <jmp.&KERNEL32.lstrcatA>
00401B07 58 pop eax
00401B08 68 A8564000push kgme_#1.004056A8
00401B0D 50 push eax
00401B0E 68 80334000push kgme_#1.00403380 ; 用户名与BytePtr [e!]连
接
00401B13 E8 E8F4FFFFcall kgme_#1.00401000 ; md5常数
00401B18 E8 5C000000call kgme_#1.00401B79 ; 算法call
00401B1D 68 D0794000push kgme_#1.004079D0 ; 真码
00401B22 68 F89C4000push kgme_#1.00409CF8 ; 假码
00401B27 E8 CC000000call <jmp.&KERNEL32.lstrcmpA>
00401B2C 85C0 test eax,eax
00401B2E 75 15jnz short kgme_#1.00401B45
00401B30 6A 00push 0
00401B32 68 20324000push kgme_#1.00403220 ; ASCII "Good Work"
00401B37 68 2A324000push kgme_#1.0040322A ; ASCII "Good serial,
Now send your Tut & KeyGen to
http:\\www.crackmes.de
Or contact me at
#eminence channel on eFnet."
00401B3C 6A 00push 0
00401B3E E8 D9000000call <jmp.&USER32.MessageBoxA>
00401B43 EB 2Ejmp short kgme_#1.00401B73
00401B45 6A 00push 0
00401B47 68 AD324000push kgme_#1.004032AD ; ASCII "Fatal Error"
00401B4C 68 B9324000push kgme_#1.004032B9 ; ASCII "hmmm not like
thisDuDe Try again...."
00401B51 6A 00push 0
00401B53 E8 C4000000call <jmp.&USER32.MessageBoxA>
00401B58 33C0 xor eax,eax
00401B5A C9 leave
00401B5B C2 1000retn 10
--------------------------------------------------------------------------------
跟进算法call
--------------------------------------------------------------------------------
00401B7F BE A8564000mov esi,kgme_#1.004056A8
00401B84 8B06 mov eax,dword ptr ds:[esi]
00401B86 8B5E 04mov ebx,dword ptr ds:[esi+4]
00401B89 33C3 xor eax,ebx ; eax xor ebx
00401B8B 50 push eax
00401B8C 68 5C334000push kgme_#1.0040335C ; ASCII "%.8X"
00401B91 57 push edi
00401B92 E8 67000000call <jmp.&USER32.wsprintfA>
00401B97 83C4 0Cadd esp,0C
00401B9A 83C7 08add edi,8
00401B9D 81F3 9900BD0Fxor ebx,0FBD0099; ebx xor 0FBD0099
00401BA3 53 push ebx
00401BA4 68 5C334000push kgme_#1.0040335C ; ASCII "%.8X"
00401BA9 57 push edi
00401BAA E8 4F000000call <jmp.&USER32.wsprintfA>
00401BAF 83C4 0Cadd esp,0C
00401BB2 8B4E 08mov ecx,dword ptr ds:[esi+8]
00401BB5 33CB xor ecx,ebx ; ecx xor ebx
00401BB7 83C7 08add edi,8
00401BBA 51 push ecx
00401BBB 68 5C334000push kgme_#1.0040335C ; ASCII "%.8X"
00401BC0 57 push edi
00401BC1 E8 38000000call <jmp.&USER32.wsprintfA>
00401BC6 83C4 0Cadd esp,0C
00401BC9 81F3 090A0C0Bxor ebx,0B0C0A09; ebx xor 0B0C0A09
00401BCF 8B56 0Cmov edx,dword ptr ds:[esi+C]
00401BD2 83C7 08add edi,8
00401BD5 52 push edx
00401BD6 68 5C334000push kgme_#1.0040335C ; ASCII "%.8X"
00401BDB 57 push edi
00401BDC E8 1D000000call <jmp.&USER32.wsprintfA>
00401BE1 83C4 0Cadd esp,0C
00401BE4 61 popad
00401BE5 C3 retn
--------------------------------------------------------------------------------
算法小结:
1, 对用户名进行MD5运算,为方便计算,我把值每8位分为四组
2, 第二组xor第一组,结果为注册码的第一组
3, 第二组xor 0FBD0099,结果为注册码的第二组
4, 注册码的第二组 xor 第三组,结果为注册码第三组
5, 注册码第四组为原来的第四组
6, 把注册码四组组合就是注册码 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|