[原创]eXeScope 6.50 简体中文版算法分析+Delphi注册机
发表于:
2007-9-18 16:30
12137
[原创]eXeScope 6.50 简体中文版算法分析+Delphi注册机
【破文标题】eXeScope 6.50 简体中文版算法分析+Delphi注册机
【破文作者】小子贼野
【作者主页】http://mayday.unpack.cn
【破解工具】OD
【原版下载】http://www.onlinedown.net/soft/9594.htm
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
**********************************************************************************************
004CBF7C /$ 55 push ebp
004CBF7D |. 8BEC mov ebp,esp
004CBF7F |. 51 push ecx
004CBF80 |. 53 push ebx
004CBF81 |. 8955 FC mov dword ptr ss:[ebp-4],edx
004CBF84 |. 8B45 FC mov eax,dword ptr ss:[ebp-4]
004CBF87 |. E8 B48EF3FF call eXeScope.00404E40
004CBF8C |. 33C0 xor eax,eax
004CBF8E |. 55 push ebp
004CBF8F |. 68 1BC04C00 push eXeScope.004CC01B
004CBF94 |. 64:FF30 push dword ptr fs:[eax]
004CBF97 |. 64:8920 mov dword ptr fs:[eax],esp
004CBF9A |. 33DB xor ebx,ebx
004CBF9C |. 8B45 FC mov eax,dword ptr ss:[ebp-4]
004CBF9F |. E8 AC8CF3FF call eXeScope.00404C50
004CBFA4 |. 83F8 0A cmp eax,0A
004CBFA7 |. 75 5C jnz short eXeScope.004CC005 ; 注册码必须大于10位
004CBFA9 |. 8B55 FC mov edx,dword ptr ss:[ebp-4]
004CBFAC |. B8 30C04C00 mov eax,eXeScope.004CC030 ; ASCII "A1910"
004CBFB1 |. E8 DE8FF3FF call eXeScope.00404F94 ; 注册码前5位=A1910
004CBFB6 |. 48 dec eax
004CBFB7 |. 74 10 je short eXeScope.004CBFC9
004CBFB9 |. 8B55 FC mov edx,dword ptr ss:[ebp-4]
004CBFBC |. B8 40C04C00 mov eax,eXeScope.004CC040 ; ASCII "A1423"
004CBFC1 |. E8 CE8FF3FF call eXeScope.00404F94 ; 注册码前5位=A1423
004CBFC6 |. 48 dec eax
004CBFC7 |. 75 3C jnz short eXeScope.004CC005
004CBFC9 |> B8 02000000 mov eax,2
004CBFCE |> 8B55 FC /mov edx,dword ptr ss:[ebp-4]
004CBFD1 |. 8A5402 FF |mov dl,byte ptr ds:[edx+eax-1]
004CBFD5 |. 80FA 30 |cmp dl,30
004CBFD8 |. 72 2B |jb short eXeScope.004CC005
004CBFDA |. 80FA 39 |cmp dl,39
004CBFDD |. 77 26 |ja short eXeScope.004CC005
004CBFDF |. 40 |inc eax
004CBFE0 |. 83F8 0B |cmp eax,0B
004CBFE3 |.^ 75 E9 \jnz short eXeScope.004CBFCE ; 比较注册码从第二位开始是否是数字,不是就完了
004CBFE5 |. 8B45 FC mov eax,dword ptr ss:[ebp-4]
004CBFE8 |. 0FB640 08 movzx eax,byte ptr ds:[eax+8] ; eax=注册码第九位Ascii
004CBFEC |. 8B55 FC mov edx,dword ptr ss:[ebp-4]
004CBFEF |. 0FB652 09 movzx edx,byte ptr ds:[edx+9] ; edx=最后一位Ascii
004CBFF3 |. 03C2 add eax,edx ; eax=ord(eax)+ord(edx)
004CBFF5 |. B9 0A000000 mov ecx,0A ; ecx=$10
004CBFFA |. 33D2 xor edx,edx ; edx=0
004CBFFC |. F7F1 div ecx ; 整除以$10
004CBFFE |. 83FA 04 cmp edx,4 ; 和4比较
004CC001 |. 75 02 jnz short eXeScope.004CC005 ; 如果不想等就挂
004CC003 |. B3 01 mov bl,1
004CC005 |> 33C0 xor eax,eax
004CC007 |. 5A pop edx
004CC008 |. 59 pop ecx
004CC009 |. 59 pop ecx
004CC00A |. 64:8910 mov dword ptr fs:[eax],edx
004CC00D |. 68 22C04C00 push eXeScope.004CC022
004CC012 |> 8D45 FC lea eax,dword ptr ss:[ebp-4]
004CC015 |. E8 7689F3FF call eXeScope.00404990
004CC01A \. C3 retn
004CC01B .^ E9 5483F3FF jmp eXeScope.00404374
004CC020 .^ EB F0 jmp short eXeScope.004CC012
004CC022 . 8BC3 mov eax,ebx ; 在这里也可以爆破的
004CC024 . 5B pop ebx
004CC025 . 59 pop ecx
004CC026 . 5D pop ebp
004CC027 . C3 retn
**********************************************************************************************
var
a,b,c:integer;
begin
a:=Randomrange(100,999);
b:=randomrange(0,9);
c:=randomrange(0,9);
repeat
b:=randomrange(0,9);
c:=randomrange(0,9);
until
((48+b)+(48+c)) mod 10=4;
if b/2=0 then edit1.text:='A1910'+inttostr(a)+inttostr(b)+inttostr(c)
else
edit1.Text:='A1423'+inttostr(a)+inttostr(b)+inttostr(c);
end;
**********************************************************************************************
感谢lelfei的热心帮助,感谢fonge的提示,是他们帮助我完成了算法keygen的编写
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!