飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2701|回复: 3

[原创] 软柿子eXeScope算法跟踪

[复制链接]

该用户从未签到

发表于 2009-3-6 15:41:05 | 显示全部楼层 |阅读模式
【文章标题】: 软柿子eXeScope算法跟踪
【文章作者】: gtboy
【软件名称】: eXeScope
【下载地址】: 自己搜索下载
【加壳方式】: 无
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: ollydbg,破解计算器
【操作平台】: 盗版xp
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  很老的软件,拿来练手也是一时兴起。软件很古老了,算法也很简单,适合新手练习,就当最简单的crackme啦,呵呵。差不多是明码比较了。
  吃完饭准备看个教程,感谢天草前辈的无私奉献。对我等菜鸟很有帮助。里面带了个eXeScope,就拿来练练手。算法一窍不通,就练习下,不爆破了。peid查壳,Borland Delphi 6.0 - 7.0 [Overlay],没壳,假注册了下,提示无效的ID或名字。od载入,查找字符串,定位到如下:
  004C2B5E  |.  B8 F02B4C00     mov eax,eXeScope.004C2BF0           ;  无效的 id 或名字
  向上找到段首下断,单步跟踪
  004C2A55  |.  55              push ebp
  004C2A56  |.  68 A12B4C00     push eXeScope.004C2BA1
  004C2A5B  |.  64:FF30         push dword ptr fs:[eax]
  004C2A5E  |.  64:8920         mov dword ptr fs:[eax],esp
  004C2A61  |.  A1 5CFC4C00     mov eax,dword ptr ds:[4CFC5C]
  004C2A66  |.  8038 00         cmp byte ptr ds:[eax],0
  004C2A69  |.  74 0F           je short eXeScope.004C2A7A
  004C2A6B  |.  C783 4C020000 0>mov dword ptr ds:[ebx+24C],2
  004C2A75  |.  E9 FF000000     jmp eXeScope.004C2B79
  004C2A7A  |>  8D55 FC         lea edx,[local.1]
  004C2A7D  |.  8B83 F8020000   mov eax,dword ptr ds:[ebx+2F8]
  004C2A83  |.  E8 F4F8FAFF     call eXeScope.0047237C              ;  取用户名,不参与运算
  004C2A88  |.  8B55 FC         mov edx,[local.1]
  004C2A8B  |.  A1 E8FE4C00     mov eax,dword ptr ds:[4CFEE8]
  004C2A90  |.  E8 4F1FF4FF     call eXeScope.004049E4
  004C2A95  |.  8D55 F8         lea edx,[local.2]
  004C2A98  |.  8B83 FC020000   mov eax,dword ptr ds:[ebx+2FC]
  004C2A9E  |.  E8 D9F8FAFF     call eXeScope.0047237C              ;  取假码
  004C2AA3  |.  8B55 F8         mov edx,[local.2]
  004C2AA6  |.  A1 4CFE4C00     mov eax,dword ptr ds:[4CFE4C]
  004C2AAB  |.  E8 341FF4FF     call eXeScope.004049E4
  004C2AB0  |.  8B15 4CFE4C00   mov edx,dword ptr ds:[4CFE4C]       ;  eXeScope.004D2E58
  004C2AB6  |.  8B12            mov edx,dword ptr ds:[edx]
  004C2AB8  |.  A1 54FC4C00     mov eax,dword ptr ds:[4CFC54]
  004C2ABD  |.  8B00            mov eax,dword ptr ds:[eax]
  004C2ABF  |.  E8 B8940000     call eXeScope.004CBF7C              ;  比较cll,跟进
  004C2AC4  |.  84C0            test al,al
  004C2AC6      0F84 8D000000   je eXeScope.004C2B59                ;  关键跳
  进去后:
  004CBF7C  /$  55              push ebp
  004CBF7D  |.  8BEC            mov ebp,esp
  004CBF7F  |.  51              push ecx
  004CBF80  |.  53              push ebx
  004CBF81  |.  8955 FC         mov [local.1],edx
  004CBF84  |.  8B45 FC         mov eax,[local.1]
  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,[local.1]
  004CBF9F  |.  E8 AC8CF3FF     call eXeScope.00404C50
  004CBFA4  |.  83F8 0A         cmp eax,0A                          ;  注册码位数为10
  004CBFA7  |.  75 5C           jnz short eXeScope.004CC005
  004CBFA9  |.  8B55 FC         mov edx,[local.1]
  004CBFAC  |.  B8 30C04C00     mov eax,eXeScope.004CC030           ;  a1910
  004CBFB1  |.  E8 DE8FF3FF     call eXeScope.00404F94
  004CBFB6  |.  48              dec eax                             ;  (初始 cpu 选择)
  004CBFB7  |.  74 10           je short eXeScope.004CBFC9          ;  A1910开头的就验证数字部分
  004CBFB9  |.  8B55 FC         mov edx,[local.1]
  004CBFBC  |.  B8 40C04C00     mov eax,eXeScope.004CC040           ;  a1423
  004CBFC1  |.  E8 CE8FF3FF     call eXeScope.00404F94
  004CBFC6  |.  48              dec eax
  004CBFC7  |.  75 3C           jnz short eXeScope.004CC005         ;  A1423开头的也可以
  004CBFC9  |>  B8 02000000     mov eax,2
  004CBFCE  |>  8B55 FC         /mov edx,[local.1]                  ;  EDX中为假码
  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        ;  注册码为0~9之间的数字
  004CBFE5  |.  8B45 FC         mov eax,[local.1]
  004CBFE8  |.  0FB640 08       movzx eax,byte ptr ds:[eax+8]       ;  第9位放入eax
  004CBFEC  |.  8B55 FC         mov edx,[local.1]
  004CBFEF  |.  0FB652 09       movzx edx,byte ptr ds:[edx+9]       ;  第10位放入edx
  004CBFF3  |.  03C2            add eax,edx                         ;  相加放入eax
  004CBFF5  |.  B9 0A000000     mov ecx,0A
  004CBFFA  |.  33D2            xor edx,edx
  004CBFFC  |.  F7F1            div ecx                             ;  eax除以0A,余数放入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:[eax],edx
  004CC00D  |.  68 22C04C00     push eXeScope.004CC022
  004CC012  |>  8D45 FC         lea eax,[local.1]
  004CC015  |.  E8 7689F3FF     call eXeScope.00404990
  004CC01A  \.  C3              retn
  
  对0A求余为4,注册码必须为ascii码,范围已定,十六进制的60~72,从中选取,数字不多,我就人肉了,数学不好,没有细细算。只有68和72,则最后两位组合有80,08,99。开始的五位为A1910或者A1423,中间的随意。用户名和注册码都保存在eXeScope.ini中,有重启验证,很好爆破的,不过自己算出注册码了就不用了。
  
--------------------------------------------------------------------------------
【经验总结】
  跟算法的时候要耐心,多多思考。现在的软件算法应该没这么简单了,就更麻烦了。明码比较的软件还有多少呢?这个软件
  爆破很容易,大家可以自己找下。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于gtboy, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年03月06日 15:37:51
PYG19周年生日快乐!

该用户从未签到

发表于 2009-3-6 23:51:43 | 显示全部楼层
软件在那下的,我也试试看
PYG19周年生日快乐!

该用户从未签到

发表于 2009-3-7 09:03:00 | 显示全部楼层
小弟在这里学习了
谢谢分享
PYG19周年生日快乐!

该用户从未签到

发表于 2009-3-7 12:42:22 | 显示全部楼层
嘿嘿~学习了~
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表