【破解日期】 2006年11月19日
【破解作者】 冷血书生
【作者邮箱】 meiyou
【作者主页】 hxxp://www.126sohu.com/
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】
【下载地址】 本地
【软件大小】 44k
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
CODE:[Copy to clipboard]00401BE8 8D4424 40 lea eax,dword ptr ss:[esp+40] ; 用户名
00401BEC 8D50 01 lea edx,dword ptr ds:[eax+1]
00401BEF 90 nop
00401BF0 8A08 mov cl,byte ptr ds:[eax]
00401BF2 40 inc eax
00401BF3 84C9 test cl,cl
00401BF5 ^ 75 F9 jnz short sn2.00401BF0
00401BF7 6A 32 push 32
00401BF9 8D4C24 10 lea ecx,dword ptr ss:[esp+10]
00401BFD 51 push ecx
00401BFE 68 EC030000 push 3EC
00401C03 2BC2 sub eax,edx
00401C05 56 push esi
00401C06 8BD8 mov ebx,eax
00401C08 FFD7 call edi
00401C0A 8D4424 0C lea eax,dword ptr ss:[esp+C] ; 注册码
00401C0E 8D50 01 lea edx,dword ptr ds:[eax+1]
00401C11 8A08 mov cl,byte ptr ds:[eax]
00401C13 40 inc eax
00401C14 84C9 test cl,cl
00401C16 ^ 75 F9 jnz short sn2.00401C11
00401C18 2BC2 sub eax,edx
00401C1A 8BD0 mov edx,eax ; 注册码长度
00401C1C 0F84 C5000000 je sn2.00401CE7
00401C22 85DB test ebx,ebx
00401C24 0F84 BD000000 je sn2.00401CE7
00401C2A 33C9 xor ecx,ecx
00401C2C 85D2 test edx,edx
00401C2E 7E 29 jle short sn2.00401C59
00401C30 8A440C 0C mov al,byte ptr ss:[esp+ecx+C] ; 检测注册码是不是在以下范围内
00401C34 3C 30 cmp al,30
00401C36 7C 04 jl short sn2.00401C3C
00401C38 3C 39 cmp al,39
00401C3A 7E 18 jle short sn2.00401C54
00401C3C 3C 41 cmp al,41
00401C3E 7C 0C jl short sn2.00401C4C
00401C40 3C 47 cmp al,47
00401C42 7F 08 jg short sn2.00401C4C
00401C44 04 20 add al,20
00401C46 88440C 0C mov byte ptr ss:[esp+ecx+C],al
00401C4A EB 08 jmp short sn2.00401C54
00401C4C 3C 61 cmp al,61
00401C4E 7C 65 jl short sn2.00401CB5
00401C50 3C 67 cmp al,67
00401C52 7F 61 jg short sn2.00401CB5
00401C54 41 inc ecx
00401C55 3BCA cmp ecx,edx
00401C57 ^ 7C D7 jl short sn2.00401C30
00401C59 33C0 xor eax,eax
00401C5B 85DB test ebx,ebx
00401C5D 7E 0D jle short sn2.00401C6C
00401C5F 8A4C14 0B mov cl,byte ptr ss:[esp+edx+B] ; 取注册码最后一位
00401C63 304C04 40 xor byte ptr ss:[esp+eax+40],cl ; 分别XOR 用户名
00401C67 40 inc eax
00401C68 3BC3 cmp eax,ebx
00401C6A ^ 7C F7 jl short sn2.00401C63
00401C6C 8D4424 40 lea eax,dword ptr ss:[esp+40] ; 保存结果
00401C70 50 push eax
00401C71 C64414 0F 00 mov byte ptr ss:[esp+edx+F],0
00401C76 E8 75FEFFFF call sn2.00401AF0 /// md5运算
00401C7B 83C4 04 add esp,4
00401C7E 8D4C24 0C lea ecx,dword ptr ss:[esp+C]
00401C82 51 push ecx ; 注册码-1位
00401C83 50 push eax ; 上面计算结果的MD5值
00401C84 FF15 00704000 call dword ptr ds:[<&KERNEL32.lstrcmp>; kernel32.lstrcmpA /// 相等就注册成功
00401C8A 85C0 test eax,eax
00401C8C 6A 00 push 0
00401C8E 75 33 jnz short sn2.00401CC3
00401C90 68 98714000 push sn2.00407198 ; Succeed!
00401C95 68 88714000 push sn2.00407188 ; Great,注册成功!
00401C9A 8B15 40974000 mov edx,dword ptr ds:[409740]
00401CA0 52 push edx
00401CA1 FF15 DC704000 call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA
00401CA7 5E pop esi
MD5(注册码最后一位分别XOR 用户名)与注册码去掉最后一位比较,相等则成功
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |