ZHOU2X 发表于 2006-11-8 11:48:54

eXeScope 6.50 中文版注册分析

【破文标题】eXeScope 6.50 中文版注册分析
【破文作者】ZHOU2X
【破解工具】PEID,OD,W32Dasm
【破解平台】WinXP sp2
【软件名称】eXeScope 6.50
【软件大小】1.05 MB
【原版下载】论坛有下载
【保护方式】ID、时间限制
【软件简介】
【破解声明】初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【破解过程】PEID扫描,Borland Delphi 6.0 - 7.0,无壳
试注册,提示“无效的 id 或名字”
OD载入,“超级字串参考”插件搜索“无效的 id 或名字”



004C2A44/.55                         push ebp
004C2A45|.8BEC                     mov ebp,esp
004C2A47|.33C9                     xor ecx,ecx
004C2A49|.51                         push ecx
004C2A4A|.51                         push ecx
004C2A4B|.51                         push ecx
004C2A4C|.51                         push ecx
004C2A4D|.51                         push ecx
004C2A4E|.53                         push ebx
004C2A4F|.56                         push esi
004C2A50|.57                         push edi
004C2A51|.8BD8                     mov ebx,eax
004C2A53|.33C0                     xor eax,eax
004C2A55|.55                         push ebp
004C2A56|.68 A12B4C00                push eXeScope.004C2BA1
004C2A5B|.64:FF30                  push dword ptr fs:
004C2A5E|.64:8920                  mov dword ptr fs:,esp
004C2A61|.A1 5CFC4C00                mov eax,dword ptr ds:
004C2A66|.8038 00                  cmp byte ptr ds:,0
004C2A69|.74 0F                      je short eXeScope.004C2A7A
004C2A6B|.C783 4C020000 02000000   mov dword ptr ds:,2
004C2A75|.E9 FF000000                jmp eXeScope.004C2B79
004C2A7A|>8D55 FC                  lea edx,
004C2A7D|.8B83 F8020000            mov eax,dword ptr ds:
004C2A83|.E8 F4F8FAFF                call eXeScope.0047237C
004C2A88|.8B55 FC                  mov edx,
004C2A8B|.A1 E8FE4C00                mov eax,dword ptr ds:
004C2A90|.E8 4F1FF4FF                call eXeScope.004049E4
004C2A95|.8D55 F8                  lea edx,
004C2A98|.8B83 FC020000            mov eax,dword ptr ds:
004C2A9E|.E8 D9F8FAFF                call eXeScope.0047237C
004C2AA3|.8B55 F8                  mov edx,
004C2AA6|.A1 4CFE4C00                mov eax,dword ptr ds:
004C2AAB|.E8 341FF4FF                call eXeScope.004049E4
004C2AB0|.8B15 4CFE4C00            mov edx,dword ptr ds:               ;eXeScope.004D2E58
004C2AB6|.8B12                     mov edx,dword ptr ds:
004C2AB8|.A1 54FC4C00                mov eax,dword ptr ds:
004C2ABD|.8B00                     mov eax,dword ptr ds:
004C2ABF|.E8 B8940000                call eXeScope.004CBF7C                      ;关键CALL,跟进
004C2AC4|.84C0                     test al,al
004C2AC6|.0F84 8D000000            je eXeScope.004C2B59
004C2ACC|.A1 E8FE4C00                mov eax,dword ptr ds:
004C2AD1|.8B00                     mov eax,dword ptr ds:
004C2AD3|.E8 7821F4FF                call eXeScope.00404C50
004C2AD8|.85C0                     test eax,eax
004C2ADA|.7E 7D                      jle short eXeScope.004C2B59
004C2ADC|.8D55 F0                  lea edx,
004C2ADF|.A1 FCFE4C00                mov eax,dword ptr ds:
004C2AE4|.8B00                     mov eax,dword ptr ds:
004C2AE6|.E8 11FCFCFF                call eXeScope.004926FC
004C2AEB|.8B45 F0                  mov eax,
004C2AEE|.8D4D F4                  lea ecx,
004C2AF1|.BA B82B4C00                mov edx,eXeScope.004C2BB8                   ;.ini
004C2AF6|.E8 2570F4FF                call eXeScope.00409B20
004C2AFB|.8B4D F4                  mov ecx,
004C2AFE|.B2 01                      mov dl,1
004C2B00|.A1 2CBE4300                mov eax,dword ptr ds:
004C2B05|.E8 D293F7FF                call eXeScope.0043BEDC
004C2B0A|.8BF0                     mov esi,eax
004C2B0C|.A1 E8FE4C00                mov eax,dword ptr ds:
004C2B11|.8B00                     mov eax,dword ptr ds:
004C2B13|.50                         push eax
004C2B14|.B9 C82B4C00                mov ecx,eXeScope.004C2BC8                   ;name
004C2B19|.BA D82B4C00                mov edx,eXeScope.004C2BD8                   ;reg
004C2B1E|.8BC6                     mov eax,esi
004C2B20|.8B38                     mov edi,dword ptr ds:
004C2B22|.FF57 04                  call near dword ptr ds:
004C2B25|.A1 4CFE4C00                mov eax,dword ptr ds:
004C2B2A|.8B00                     mov eax,dword ptr ds:
004C2B2C|.50                         push eax
004C2B2D|.BA D82B4C00                mov edx,eXeScope.004C2BD8                   ;reg
004C2B32|.B9 E42B4C00                mov ecx,eXeScope.004C2BE4                   ;id
004C2B37|.8BC6                     mov eax,esi
004C2B39|.8B38                     mov edi,dword ptr ds:
004C2B3B|.FF57 04                  call near dword ptr ds:
004C2B3E|.8BC6                     mov eax,esi
004C2B40|.E8 9B10F4FF                call eXeScope.00403BE0
004C2B45|.A1 5CFC4C00                mov eax,dword ptr ds:
004C2B4A|.C600 01                  mov byte ptr ds:,1
004C2B4D|.C783 4C020000 01000000   mov dword ptr ds:,1
004C2B57|.EB 20                      jmp short eXeScope.004C2B79
004C2B59|>6A 00                      push 0                                    ;由 004C2AC6, 004C2ADA 跳来
004C2B5B|.8D55 EC                  lea edx,
004C2B5E|.B8 F02B4C00                mov eax,eXeScope.004C2BF0                   ;无效的 id 或 名字 //来到这里,向上看
004C2B63|.E8 680D0000                call eXeScope.004C38D0
004C2B68|.8B45 EC                  mov eax,                           ; |
004C2B6B|.66:8B0D 202C4C00         mov cx,word ptr ds:               ; |
004C2B72|.B2 01                      mov dl,1                                    ; |
004C2B74|.E8 2F4BF7FF                call eXeScope.004376A8                      ; \eXeScope.004376A8
004C2B79|>33C0                     xor eax,eax
004C2B7B|.5A                         pop edx
004C2B7C|.59                         pop ecx
004C2B7D|.59                         pop ecx
004C2B7E|.64:8910                  mov dword ptr fs:,edx
004C2B81|.68 A82B4C00                push eXeScope.004C2BA8
004C2B86|>8D45 EC                  lea eax,
004C2B89|.BA 03000000                mov edx,3
004C2B8E|.E8 211EF4FF                call eXeScope.004049B4
004C2B93|.8D45 F8                  lea eax,
004C2B96|.BA 02000000                mov edx,2
004C2B9B|.E8 141EF4FF                call eXeScope.004049B4
004C2BA0\.C3                         ret
004C2BA1   .^ E9 CE17F4FF                jmp eXeScope.00404374
004C2BA6   .^ EB DE                      jmp short eXeScope.004C2B86
004C2BA8   .5F                         pop edi
004C2BA9   .5E                         pop esi
004C2BAA   .5B                         pop ebx
004C2BAB   .8BE5                     mov esp,ebp
004C2BAD   .5D                         pop ebp
004C2BAE   .C3                         ret


004CBF7C/$55                         push ebp
004CBF7D|.8BEC                     mov ebp,esp
004CBF7F|.51                         push ecx
004CBF80|.53                         push ebx
004CBF81|.8955 FC                  mov ,edx
004CBF84|.8B45 FC                  mov eax,
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:
004CBF97|.64:8920                  mov dword ptr fs:,esp
004CBF9A|.33DB                     xor ebx,ebx
004CBF9C|.8B45 FC                  mov eax,
004CBF9F|.E8 AC8CF3FF                call eXeScope.00404C50
004CBFA4|.83F8 0A                  cmp eax,0A                                  ;比较注册码长度是否为10
004CBFA7|.75 5C                      jnz short eXeScope.004CC005               ;爆破点,改为 jmp 004CC003
004CBFA9|.8B55 FC                  mov edx,
004CBFAC|.B8 30C04C00                mov eax,eXeScope.004CC030                   ;ASCII "A1910"
004CBFB1|.E8 DE8FF3FF                call eXeScope.00404F94                      ;比较注册码前五个字符是否为"A1910"
004CBFB6|.48                         dec eax
004CBFB7|.74 10                      je short eXeScope.004CBFC9
004CBFB9|.8B55 FC                  mov edx,
004CBFBC|.B8 40C04C00                mov eax,eXeScope.004CC040                   ;ASCII "A1423"
004CBFC1|.E8 CE8FF3FF                call eXeScope.00404F94                      ;比较注册码前五个字符是否为"A1423"
004CBFC6|.48                         dec eax
004CBFC7|.75 3C                      jnz short eXeScope.004CC005               ;跳过注册标志
004CBFC9|>B8 02000000                mov eax,2
004CBFCE|>8B55 FC                  /mov edx,                        ;这个循环判断注册码从第二个字符开始是否是数字
004CBFD1|.8A5402 FF                  |mov dl,byte ptr ds:
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,
004CBFE8|.0FB640 08                  movzx eax,byte ptr ds:               ;取注册码第9个字符ASSIC码值
004CBFEC|.8B55 FC                  mov edx,
004CBFEF|.0FB652 09                  movzx edx,byte ptr ds:               ;取注册码第10个字符ASSIC码值
004CBFF3|.03C2                     add eax,edx                                 ;eax=eax+edx
004CBFF5|.B9 0A000000                mov ecx,0A                                  ;常数 10
004CBFFA|.33D2                     xor edx,edx                                 ;
004CBFFC|.F7F1                     div ecx                                     ;eax/ecx,余数入edx
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:,edx
004CC00D|.68 22C04C00                push eXeScope.004CC022
004CC012|>8D45 FC                  lea eax,
004CC015|.E8 7689F3FF                call eXeScope.00404990
004CC01A\.C3                         ret

------------------------------------------------------------------------
【破解总结】注册名跟注册码无关,未加入计算
注册码长度为10
比较注册码前五个字符是"A1423"或"A1910"
取注册码第9、10位字符ASSIC码值和除以10,得余数4
易语言注册机源码

.版本 2

.局部变量 tmp2, 整数型
.局部变量 tmp1, 整数型
.局部变量 tmp3, 整数型

置随机数种子 ()
tmp1 = 取随机数 (100, 999)
tmp2 = 取随机数 (0, 9)
tmp3 = 取随机数 (0, 9)
.判断循环首 ((取代码 (到文本 (tmp2), ) + 取代码 (到文本 (tmp3), )) % 10 ≠ 4)
    tmp2 = 取随机数 (0, 9)
    tmp3 = 取随机数 (0, 9)
.判断循环尾 ()
.如果 (tmp2 % 2 = 0)
    编辑框1.内容 = “A1910” + 到文本 (tmp1) + 到文本 (tmp2) + 到文本 (tmp3)
.否则
    编辑框1.内容 = “A1423” + 到文本 (tmp1) + 到文本 (tmp2) + 到文本 (tmp3)


------------------------------------------------------------------------
【版权声明】本文纯属技术交流,转载请注明作者并保持文章的完整,谢谢!

[ 本帖最后由 ZHOU2X 于 2006-12-26 13:58 编辑 ]

寒湖鹤影 发表于 2006-11-8 17:46:27

好文,学习

binbinbin 发表于 2006-11-29 06:45:35

我看中的是后面的易语言注册机代码.嘿嘿

eopenfang 发表于 2006-12-8 21:52:34

没得说

一个字.牛!学习了!

wyh1983 发表于 2006-12-10 22:07:03

厉害!分析得够清析。
学习

游园惊梦 发表于 2007-4-12 00:14:14

目前还看不懂,我回去加紧学习。谢谢楼主。

allcam 发表于 2007-4-15 17:23:03

不错分析很好学习算法很有帮助

flyroom 发表于 2007-4-27 22:00:58

学习,学习,不断努力啊

shaoge 发表于 2007-5-10 09:18:57

原来后面的就是易语言啊,学习了,从未接触过易语言。。。

wwwoo 发表于 2007-5-14 15:16:16

学习一下,慢慢回味
页: [1] 2 3
查看完整版本: eXeScope 6.50 中文版注册分析