- UID
- 26439
注册时间2007-1-1
阅读权限40
最后登录1970-1-1
独步武林
该用户从未签到
|
【破文标题】exescope简单算法分析
【破文作者】wuhanqi[CR][ICY][48PG]
【作者邮箱】[email protected]
【作者主页】http://www.edisk.org/?wuhanqi
【破解工具】peid od
【破解平台】XP2
【软件名称】exescope
【软件大小】……
【原版下载】自己搜索下载
【保护方式】Borland Delphi 6.0
【软件简介】一款资源编辑器
【破解声明】菜鸟一个,还需多多学习
------------------------------------------------------------------------
【破解过程】运行软件 找到字符串“无效的 id 或名字”
od载入 查找字符
004C2A90 |. E8 4F1FF4FF call 004049E4
004C2A95 |. 8D55 F8 lea edx, dword ptr [ebp-8]
004C2A98 |. 8B83 FC020000 mov eax, dword ptr [ebx+2FC]
004C2A9E |. E8 D9F8FAFF call 0047237C
004C2AA3 |. 8B55 F8 mov edx, dword ptr [ebp-8]
004C2AA6 |. A1 4CFE4C00 mov eax, dword ptr [4CFE4C]
004C2AAB |. E8 341FF4FF call 004049E4
004C2AB0 |. 8B15 4CFE4C00 mov edx, dword ptr [4CFE4C] ; eXeScope.004D2E58
004C2AB6 |. 8B12 mov edx, dword ptr [edx]
004C2AB8 |. A1 54FC4C00 mov eax, dword ptr [4CFC54]
004C2ABD |. 8B00 mov eax, dword ptr [eax]
004C2ABF |. E8 B8940000 call 004CBF7C ; 关键CALL,跟进
004C2AC4 |. 84C0 test al, al
004C2AC6 |. 0F84 8D000000 je 004C2B59
004C2ACC |. A1 E8FE4C00 mov eax, dword ptr [4CFEE8]
004C2AD1 |. 8B00 mov eax, dword ptr [eax]
004C2AD3 |. E8 7821F4FF call 00404C50
004C2AD8 |. 85C0 test eax, eax
004C2ADA |. 7E 7D jle short 004C2B59
004C2ADC |. 8D55 F0 lea edx, dword ptr [ebp-10]
004C2ADF |. A1 FCFE4C00 mov eax, dword ptr [4CFEFC]
004C2AE4 |. 8B00 mov eax, dword ptr [eax]
004C2AE6 |. E8 11FCFCFF call 004926FC
004C2AEB |. 8B45 F0 mov eax, dword ptr [ebp-10]
004C2AEE |. 8D4D F4 lea ecx, dword ptr [ebp-C]
004C2AF1 |. BA B82B4C00 mov edx, 004C2BB8 ; .ini
004C2AF6 |. E8 2570F4FF call 00409B20
004C2AFB |. 8B4D F4 mov ecx, dword ptr [ebp-C]
004C2AFE |. B2 01 mov dl, 1
004C2B00 |. A1 2CBE4300 mov eax, dword ptr [43BE2C]
004C2B05 |. E8 D293F7FF call 0043BEDC
004C2B0A |. 8BF0 mov esi, eax
004C2B0C |. A1 E8FE4C00 mov eax, dword ptr [4CFEE8]
004C2B11 |. 8B00 mov eax, dword ptr [eax]
004C2B13 |. 50 push eax
004C2B14 |. B9 C82B4C00 mov ecx, 004C2BC8 ; name
004C2B19 |. BA D82B4C00 mov edx, 004C2BD8 ; reg
004C2B1E |. 8BC6 mov eax, esi
004C2B20 |. 8B38 mov edi, dword ptr [eax]
004C2B22 |. FF57 04 call dword ptr [edi+4]
004C2B25 |. A1 4CFE4C00 mov eax, dword ptr [4CFE4C]
004C2B2A |. 8B00 mov eax, dword ptr [eax]
004C2B2C |. 50 push eax
004C2B2D |. BA D82B4C00 mov edx, 004C2BD8 ; reg
004C2B32 |. B9 E42B4C00 mov ecx, 004C2BE4 ; id
004C2B37 |. 8BC6 mov eax, esi
004C2B39 |. 8B38 mov edi, dword ptr [eax]
004C2B3B |. FF57 04 call dword ptr [edi+4]
004C2B3E |. 8BC6 mov eax, esi
004C2B40 |. E8 9B10F4FF call 00403BE0
004C2B45 |. A1 5CFC4C00 mov eax, dword ptr [4CFC5C]
004C2B4A |. C600 01 mov byte ptr [eax], 1
004C2B4D |. C783 4C020000>mov dword ptr [ebx+24C], 1
004C2B57 |. EB 20 jmp short 004C2B79
004C2B59 |> 6A 00 push 0
004C2B5B |. 8D55 EC lea edx, dword ptr [ebp-14]
004C2B5E |. B8 F02B4C00 mov eax, 004C2BF0 ; 无效的 id 或名字
004C2B63 |. E8 680D0000 call 004C38D0
004C2B68 |. 8B45 EC mov eax, dword ptr [ebp-14] ; |
004C2B6B |. 66:8B0D 202C4>mov cx, word ptr [4C2C20] ; |
004C2B72 |. B2 01 mov dl, 1 ; |
004C2B74 |. E8 2F4BF7FF call 004376A8 ; \eXeScope.004376A8
004C2B79 |> 33C0 xor eax, eax
004C2B7B |. 5A pop edx
004C2B7C |. 59 pop ecx
跟进关键CALL
004CBF7C /$ 55 push ebp
004CBF7D |. 8BEC mov ebp, esp
004CBF7F |. 51 push ecx
004CBF80 |. 53 push ebx
004CBF81 |. 8955 FC mov dword ptr [ebp-4], edx
004CBF84 |. 8B45 FC mov eax, dword ptr [ebp-4]
004CBF87 |. E8 B48EF3FF call 00404E40
004CBF8C |. 33C0 xor eax, eax
004CBF8E |. 55 push ebp
004CBF8F |. 68 1BC04C00 push 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 [ebp-4]
004CBF9F |. E8 AC8CF3FF call 00404C50 ; 计算假码位数
004CBFA4 |. 83F8 0A cmp eax, 0A ; 是否等于10
004CBFA7 |. 75 5C jnz short 004CC005 ; 不等则跳
004CBFA9 |. 8B55 FC mov edx, dword ptr [ebp-4]
004CBFAC |. B8 30C04C00 mov eax, 004CC030 ; ASCII "A1910"
004CBFB1 |. E8 DE8FF3FF call 00404F94 ; 比较注册码前5位是否为 A1910
004CBFB6 |. 48 dec eax
004CBFB7 |. 74 10 je short 004CBFC9
004CBFB9 |. 8B55 FC mov edx, dword ptr [ebp-4]
004CBFBC |. B8 40C04C00 mov eax, 004CC040 ; ASCII "A1423"
004CBFC1 |. E8 CE8FF3FF call 00404F94 ; 比较注册码前5位是否为 A1423
004CBFC6 |. 48 dec eax
004CBFC7 |. 75 3C jnz short 004CC005
004CBFC9 |> B8 02000000 mov eax, 2
004CBFCE |> 8B55 FC /mov edx, dword ptr [ebp-4]
004CBFD1 |. 8A5402 FF |mov dl, byte ptr [edx+eax-1]
004CBFD5 |. 80FA 30 |cmp dl, 30
004CBFD8 |. 72 2B |jb short 004CC005
004CBFDA |. 80FA 39 |cmp dl, 39
004CBFDD |. 77 26 |ja short 004CC005
004CBFDF |. 40 |inc eax
004CBFE0 |. 83F8 0B |cmp eax, 0B
004CBFE3 |.^ 75 E9 \jnz short 004CBFCE ; 循环比较
004CBFE5 |. 8B45 FC mov eax, dword ptr [ebp-4]
004CBFE8 |. 0FB640 08 movzx eax, byte ptr [eax+8] ; 取注册码第9位ASSIC码值
004CBFEC |. 8B55 FC mov edx, dword ptr [ebp-4]
004CBFEF |. 0FB652 09 movzx edx, byte ptr [edx+9] ; 取注册码第10位ASSIC码值
004CBFF3 |. 03C2 add eax, edx ; eax=eax+edx
004CBFF5 |. B9 0A000000 mov ecx, 0A ; 0A(十进制10)到ecx
004CBFFA |. 33D2 xor edx, edx ; 清空edx
004CBFFC |. F7F1 div ecx ; eax/ecx
004CBFFE |. 83FA 04 cmp edx, 4 ; 比较余数是否为4
004CC001 |. 75 02 jnz short 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 004CC022
004CC012 |> 8D45 FC lea eax, dword ptr [ebp-4]
004CC015 |. E8 7689F3FF call 00404990
004CC01A \. C3 retn
004CC01B .^ E9 5483F3FF jmp 00404374
004CC020 .^ EB F0 jmp short 004CC012
004CC022 . 8BC3 mov eax, ebx
004CC024 . 5B pop ebx
004CC025 . 59 pop ecx
004CC026 . 5D pop ebp
004CC027 . C3 retn
------------------------------------------------------------------------
【破解总结】算法与用户名无关,必须10位,前五位是 "A1910" 或 "A1423" 注册码第9位ASSIC码值与注册码第10位ASSIC码值 相加,所得之和与10作除法运算 等于4就注册成功
------------------------------------------------------------------------
【版权声明】wuhanqi申请加入PYG破文之六 |
|