飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6858|回复: 1

[原创]易之侠申请加入PYG成员[亿诚医药管理软件 v5.0 算法分析+内存注册机]

[复制链接]
  • TA的每日心情
    开心
    2025-1-7 13:59
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    发表于 2007-1-27 14:34:14 | 显示全部楼层 |阅读模式
    【破文标题】亿诚医药管理软件 v5.0 [算法分析+内存注册机]
    【破文作者】易之侠[TFW]
    【作者邮箱】[email protected]
    【作者主页】jmxsoft.ys168.com
    破解工具】PEID,OllyDBG 汉化第三版
    【破解平台】Win9x/NT/2000/XP/2003
    【软件名称】亿诚医药管理软件 v5.0
    【软件大小】7.58 MB
    【原版下载】http://www.onlinedown.net/soft/2034.htm
    【保护方式】注册码限制
    【软件简介】亿诚医药管理软件 是一款智能化"傻瓜"型软件,具有十二大优点:
    1、支持扫描枪、药品编号、药品简码的操作,从事药品入库、销售工作容易之极;
    2、对不同的员工授予不同的操作权限,管理轻松之极;
    3、随时随地可以由用户根据需要进行截帐处理;
    4、随时知悉销售的每一个药品的当前库存数;
    5、会员消费、打折销售轻松操作,极尽智能化之轻松;
    6、支持拆零销售轻而易举,无需劳神费脑;
    7、销售分析随时知悉盈利情况,只需轻轻一击,简单之极;
    8、无论商家、顾客,均支持药品退药处理,轻轻松松;
    9、药品养护轻轻松松,只需输入天数刷新即可搞定;
    10、过期药品早知道,只需指定即将到期的天数刷新一下即可;
    11、GSP管理删繁就简,电脑轻松搞定,无需手工抄录;
    12、用户使用正式版后免费获得技术更新。
    ---------------------------------------------------------------------------
    【破解声明】初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
    ---------------------------------------------------------------------------
    【破解过程】
    1、首先用PEID查壳,发现用Borland Delphi 6.0 - 7.0编写的.竟然未加壳!呵呵!省了好多工夫.
    2、利用bp ShowWindow 断点函数或者利用软件字符串提示信息:输入注册码不正确,请检查!OD载入,来到相应的地方。
    ---------------------------------------------------------------------------------------
    0063FF8C  /.  55            push    ebp                              ;  运行程序,输入试验码.在此处下断点.
    0063FF8D  |.  8BEC          mov     ebp, esp                         ;  取消断点,F8单步跟踪往下跳.
    0063FF8F  |.  33C9          xor     ecx, ecx
    0063FF91  |.  51            push    ecx
    0063FF92  |.  51            push    ecx
    0063FF93  |.  51            push    ecx
    0063FF94  |.  51            push    ecx
    0063FF95  |.  51            push    ecx
    0063FF96  |.  51            push    ecx
    0063FF97  |.  51            push    ecx
    0063FF98  |.  53            push    ebx
    0063FF99  |.  8BD8          mov     ebx, eax
    0063FF9B  |.  33C0          xor     eax, eax
    0063FF9D  |.  55            push    ebp
    0063FF9E  |.  68 CC006400   push    006400CC
    0063FFA3  |.  64:FF30       push    dword ptr fs:[eax]
    0063FFA6  |.  64:8920       mov     dword ptr fs:[eax], esp
    0063FFA9  |.  8D55 F4       lea     edx, dword ptr [ebp-C]
    0063FFAC  |.  8B83 1C030000 mov     eax, dword ptr [ebx+31C]
    0063FFB2  |.  E8 09A3E4FF   call    0048A2C0
    0063FFB7  |.  8B45 F4       mov     eax, dword ptr [ebp-C]           ;  试练码送入EAX中.
    0063FFBA  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
    0063FFBD  |.  E8 0E98DCFF   call    004097D0
    0063FFC2  |.  8B45 F8       mov     eax, dword ptr [ebp-8]           ;  试练码送入EAX中.
    0063FFC5  |.  50            push    eax                              ;  试练码压入堆栈.
    0063FFC6  |.  8D55 EC       lea     edx, dword ptr [ebp-14]
    0063FFC9  |.  8B83 18030000 mov     eax, dword ptr [ebx+318]         ;  试练码送入EAX中.
    0063FFCF  |.  E8 ECA2E4FF   call    0048A2C0
    0063FFD4  |.  8B45 EC       mov     eax, dword ptr [ebp-14]          ;  出现程序预设字符串.
    0063FFD7  |.  8D55 F0       lea     edx, dword ptr [ebp-10]
    0063FFDA  |.  E8 F197DCFF   call    004097D0
    0063FFDF  |.  8B45 F0       mov     eax, dword ptr [ebp-10]          ;  预设字符串传送到EAX中.
    0063FFE2  |.  50            push    eax                              ;  预设字符串压入堆栈.
    0063FFE3  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
    0063FFE6  |.  8B83 14030000 mov     eax, dword ptr [ebx+314]
    0063FFEC  |.  E8 CFA2E4FF   call    0048A2C0
    0063FFF1  |.  8B45 E4       mov     eax, dword ptr [ebp-1C]
    0063FFF4  |.  8D55 E8       lea     edx, dword ptr [ebp-18]          ;  预设字符串.
    0063FFF7  |.  E8 D497DCFF   call    004097D0
    0063FFFC  |.  8B55 E8       mov     edx, dword ptr [ebp-18]
    0063FFFF  |.  8B83 2C030000 mov     eax, dword ptr [ebx+32C]
    00640005  |.  59            pop     ecx                              ;  预设字符串放到ECX和EDX中.
    00640006  |.  E8 B1E3F3FF   call    0057E3BC                         ;  关键CALL,算法研究.F7跟进.
    0064000B  |.  84C0          test    al, al                           ;  这里是标志位测试.
    0064000D  |.  75 2C         jnz     short 0064003B                   ;  这里是关键跳转,爆破点!
    0064000F  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    00640012  |.  BA E0006400   mov     edx, 006400E0                    ;  输入注册码不正确,请检查!
    00640017  |.  E8 DC4ADCFF   call    00404AF8
    0064001C  |.  6A 40         push    40
    0064001E  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    00640021  |.  E8 FA4EDCFF   call    00404F20
    00640026  |.  8BD0          mov     edx, eax
    00640028  |.  B9 FC006400   mov     ecx, 006400FC                    ;  输入错误
    0064002D  |.  A1 789C6D00   mov     eax, dword ptr [6D9C78]
    00640032  |.  8B00          mov     eax, dword ptr [eax]
    00640034  |.  E8 1FBBE6FF   call    004ABB58
    00640039  |.  EB 4E         jmp     short 00640089                   ;  (Initial CPU selection)
    0064003B  |>  68 10016400   push    00640110                         ;  注册成功!\r注册信息为:\r注册码:
    00640040  |.  8B83 2C030000 mov     eax, dword ptr [ebx+32C]
    00640046  |.  FF70 5C       push    dword ptr [eax+5C]
    00640049  |.  68 3C016400   push    0064013C                         ;  \r
    0064004E  |.  68 48016400   push    00640148                         ;  感谢您对我们的支持!请重新启动亿诚医药进销存系统!
    00640053  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    00640056  |.  BA 04000000   mov     edx, 4
    0064005B  |.  E8 804DDCFF   call    00404DE0
    00640060  |.  6A 40         push    40
    00640062  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    00640065  |.  E8 B64EDCFF   call    00404F20
    0064006A  |.  8BD0          mov     edx, eax
    0064006C  |.  B9 7C016400   mov     ecx, 0064017C                    ;  注册成功
    00640071  |.  A1 789C6D00   mov     eax, dword ptr [6D9C78]
    00640076  |.  8B00          mov     eax, dword ptr [eax]
    00640078  |.  E8 DBBAE6FF   call    004ABB58
    0064007D  |.  A1 789C6D00   mov     eax, dword ptr [6D9C78]
    00640082  |.  8B00          mov     eax, dword ptr [eax]
    00640084  |.  E8 2BBAE6FF   call    004ABAB4                         ;  爆破点,nop掉.取消重启验证注册码!
    00640089  |>  33C0          xor     eax, eax
    0064008B  |.  5A            pop     edx
    0064008C  |.  59            pop     ecx
    0064008D  |.  59            pop     ecx
    0064008E  |.  64:8910       mov     dword ptr fs:[eax], edx
    00640091  |.  68 D3006400   push    006400D3
    00640096  |>  8D45 E4       lea     eax, dword ptr [ebp-1C]
    00640099  |.  E8 C249DCFF   call    00404A60
    0064009E  |.  8D45 E8       lea     eax, dword ptr [ebp-18]
    006400A1  |.  E8 BA49DCFF   call    00404A60
    006400A6  |.  8D45 EC       lea     eax, dword ptr [ebp-14]
    006400A9  |.  E8 B249DCFF   call    00404A60
    006400AE  |.  8D45 F0       lea     eax, dword ptr [ebp-10]
    006400B1  |>  E8 AA49DCFF   call    00404A60
    006400B6  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
    006400B9  |.  E8 A249DCFF   call    00404A60
    006400BE  |.  8D45 F8       lea     eax, dword ptr [ebp-8]
    006400C1  |.  BA 02000000   mov     edx, 2
    006400C6  |.  E8 B949DCFF   call    00404A84
    006400CB  \.  C3            retn
    006400CC   .^ E9 B342DCFF   jmp     00404384
    006400D1   .^ EB C3         jmp     short 00640096
    006400D3   .  5B            pop     ebx
    006400D4   .  8BE5          mov     esp, ebp
    006400D6   .  5D            pop     ebp
    006400D7   .  C3            retn
    ---------------------------------------------------------------------------------------
    第一个关键CALL,0057E3BC 地址处.算法研究.F7跟进.
    ---------------------------------------------------------------------------------------
    0057E3BC  /$  55            push    ebp                              ;  算法人口点,F8往下走。
    0057E3BD  |.  8BEC          mov     ebp, esp
    0057E3BF  |.  83C4 F0       add     esp, -10
    0057E3C2  |.  53            push    ebx
    0057E3C3  |.  33DB          xor     ebx, ebx
    0057E3C5  |.  895D F0       mov     dword ptr [ebp-10], ebx
    0057E3C8  |.  895D F4       mov     dword ptr [ebp-C], ebx
    0057E3CB  |.  894D F8       mov     dword ptr [ebp-8], ecx
    0057E3CE  |.  8955 FC       mov     dword ptr [ebp-4], edx
    0057E3D1  |.  8BD8          mov     ebx, eax
    0057E3D3  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0057E3D6  |.  E8 356BE8FF   call    00404F10
    0057E3DB  |.  8B45 F8       mov     eax, dword ptr [ebp-8]           ;  预设字符串.
    0057E3DE  |.  E8 2D6BE8FF   call    00404F10
    0057E3E3  |.  8B45 08       mov     eax, dword ptr [ebp+8]           ;  堆栈显示试练码,如果是小写字符转为大写。
    0057E3E6  |.  E8 256BE8FF   call    00404F10
    0057E3EB  |.  33C0          xor     eax, eax
    0057E3ED  |.  55            push    ebp
    0057E3EE  |.  68 A6E45700   push    0057E4A6
    0057E3F3  |.  64:FF30       push    dword ptr fs:[eax]
    0057E3F6  |.  64:8920       mov     dword ptr fs:[eax], esp
    0057E3F9  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0057E3FC  |.  E8 1F69E8FF   call    00404D20
    0057E401  |.  3B43 4C       cmp     eax, dword ptr [ebx+4C]
    0057E404  |.  7F 19         jg      short 0057E41F
    0057E406  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0057E409  |.  E8 1269E8FF   call    00404D20
    0057E40E  |.  3B43 50       cmp     eax, dword ptr [ebx+50]
    0057E411  |.  7C 0C         jl      short 0057E41F
    0057E413  |.  8B45 08       mov     eax, dword ptr [ebp+8]           ;  显示试练码.
    0057E416  |.  E8 0569E8FF   call    00404D20
    0057E41B  |.  85C0          test    eax, eax
    0057E41D  |.  75 04         jnz     short 0057E423
    0057E41F  |>  33DB          xor     ebx, ebx
    0057E421  |.  EB 60         jmp     short 0057E483
    0057E423  |>  8D55 F4       lea     edx, dword ptr [ebp-C]
    0057E426  |.  8B45 08       mov     eax, dword ptr [ebp+8]
    0057E429  |.  E8 32B1E8FF   call    00409560
    0057E42E  |.  8B55 F4       mov     edx, dword ptr [ebp-C]           ;  试练码转为大写。
    0057E431  |.  8D45 08       lea     eax, dword ptr [ebp+8]
    0057E434  |.  E8 BF66E8FF   call    00404AF8
    0057E439  |.  8D4D F0       lea     ecx, dword ptr [ebp-10]
    0057E43C  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0057E43F  |.  8BC3          mov     eax, ebx
    0057E441  |.  E8 46FBFFFF   call    0057DF8C                         ;  第二个关键CALL跟进!算法研究!
    0057E446  |.  8B45 F0       mov     eax, dword ptr [ebp-10]          ;  堆栈显示真正的注册码!
    0057E449  |.  8B55 08       mov     edx, dword ptr [ebp+8]           ;  内存注册机制作地址.
    0057E44C  |.  E8 87B1E8FF   call    004095D8                         ;  寄存器显示: EAX 0179240C ASCII "0000932C03CB"
    0057E451  |.  85C0          test    eax, eax
    0057E453  |.  74 04         je      short 0057E459
    0057E455  |.  33DB          xor     ebx, ebx
    0057E457  |.  EB 2A         jmp     short 0057E483
    0057E459  |>  8D43 48       lea     eax, dword ptr [ebx+48]
    0057E45C  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0057E45F  |.  E8 5066E8FF   call    00404AB4
    0057E464  |.  8D43 54       lea     eax, dword ptr [ebx+54]
    0057E467  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
    0057E46A  |.  E8 4566E8FF   call    00404AB4
    0057E46F  |.  8D43 5C       lea     eax, dword ptr [ebx+5C]
    0057E472  |.  8B55 08       mov     edx, dword ptr [ebp+8]
    0057E475  |.  E8 3A66E8FF   call    00404AB4
    0057E47A  |.  8BC3          mov     eax, ebx
    0057E47C  |.  E8 5B020000   call    0057E6DC
    0057E481  |.  B3 01         mov     bl, 1
    0057E483  |>  33C0          xor     eax, eax
    0057E485  |.  5A            pop     edx
    0057E486  |.  59            pop     ecx
    0057E487  |.  59            pop     ecx
    0057E488  |.  64:8910       mov     dword ptr fs:[eax], edx
    0057E48B  |.  68 ADE45700   push    0057E4AD
    0057E490  |>  8D45 F0       lea     eax, dword ptr [ebp-10]
    0057E493  |.  BA 04000000   mov     edx, 4
    0057E498  |.  E8 E765E8FF   call    00404A84
    0057E49D  |.  8D45 08       lea     eax, dword ptr [ebp+8]
    0057E4A0  |.  E8 BB65E8FF   call    00404A60
    0057E4A5  \.  C3            retn
    0057E4A6   .^ E9 D95EE8FF   jmp     00404384
    0057E4AB   .^ EB E3         jmp     short 0057E490
    0057E4AD   .  8BC3          mov     eax, ebx
    0057E4AF   .  5B            pop     ebx
    0057E4B0   .  8BE5          mov     esp, ebp
    0057E4B2   .  5D            pop     ebp
    0057E4B3   .  C2 0400       retn    4
    0057E4B6      8BC0          mov     eax, eax
    0057E4B8  /$  53            push    ebx
    0057E4B9  |.  8BD8          mov     ebx, eax
    0057E4BB  |.  8D43 48       lea     eax, dword ptr [ebx+48]
    0057E4BE  |.  E8 9D65E8FF   call    00404A60
    0057E4C3  |.  8D43 54       lea     eax, dword ptr [ebx+54]
    0057E4C6  |.  E8 9565E8FF   call    00404A60
    0057E4CB  |.  8D43 5C       lea     eax, dword ptr [ebx+5C]
    0057E4CE  |.  E8 8D65E8FF   call    00404A60
    0057E4D3  |.  807B 70 00    cmp     byte ptr [ebx+70], 0
    0057E4D7  |.  74 16         je      short 0057E4EF
    0057E4D9  |.  E8 C2DBE8FF   call    0040C0A0
    0057E4DE  |.  DB43 34       fild    dword ptr [ebx+34]
    0057E4E1  |.  DEC1          faddp   st(1), st
    0057E4E3  |.  DD5B 40       fstp    qword ptr [ebx+40]
    0057E4E6  |.  9B            wait
    0057E4E7  |.  8B43 34       mov     eax, dword ptr [ebx+34]
    0057E4EA  |.  8943 38       mov     dword ptr [ebx+38], eax
    0057E4ED  |.  EB 0E         jmp     short 0057E4FD
    0057E4EF  |>  33C0          xor     eax, eax
    0057E4F1  |.  8943 40       mov     dword ptr [ebx+40], eax
    0057E4F4  |.  8943 44       mov     dword ptr [ebx+44], eax
    0057E4F7  |.  8B43 34       mov     eax, dword ptr [ebx+34]
    0057E4FA  |.  8943 38       mov     dword ptr [ebx+38], eax
    0057E4FD  |>  8BC3          mov     eax, ebx
    0057E4FF  |.  E8 D8010000   call    0057E6DC
    0057E504  |.  5B            pop     ebx
    0057E505  \.  C3            retn
    0057E506      8BC0          mov     eax, eax
    0057E508   .  53            push    ebx
    0057E509   .  66:83B8 82000>cmp     word ptr [eax+82], 0
    0057E511   .  74 10         je      short 0057E523
    0057E513   .  8BD8          mov     ebx, eax
    0057E515   .  8BD0          mov     edx, eax
    0057E517   .  8B83 84000000 mov     eax, dword ptr [ebx+84]
    0057E51D   .  FF93 80000000 call    dword ptr [ebx+80]
    0057E523   >  5B            pop     ebx
    0057E524   .  C3            retn
    0057E525      8D40 00       lea     eax, dword ptr [eax]
    0057E528   .  53            push    ebx
    0057E529   .  66:83B8 8A000>cmp     word ptr [eax+8A], 0
    0057E531   .  74 10         je      short 0057E543
    0057E533   .  8BD8          mov     ebx, eax
    0057E535   .  8BD0          mov     edx, eax
    0057E537   .  8B83 8C000000 mov     eax, dword ptr [ebx+8C]
    0057E53D   .  FF93 88000000 call    dword ptr [ebx+88]
    0057E543   >  5B            pop     ebx
    0057E544   .  C3            retn
    ---------------------------------------------------------------------------------------
    第二个关键CALL,0057DF8C 地址处.算法研究.F7跟进.
    ---------------------------------------------------------------------------------------
    0057DF8C  /$  55            push    ebp                              ;  算法人口点,F8往下走。
    0057DF8D  |.  8BEC          mov     ebp, esp
    0057DF8F  |.  51            push    ecx
    0057DF90  |.  B9 04000000   mov     ecx, 4
    0057DF95  |>  6A 00         /push    0
    0057DF97  |.  6A 00         |push    0
    0057DF99  |.  49            |dec     ecx
    0057DF9A  |.^ 75 F9         \jnz     short 0057DF95
    0057DF9C  |.  874D FC       xchg    dword ptr [ebp-4], ecx           ;  F4运行到该处.
    0057DF9F  |.  53            push    ebx
    0057DFA0  |.  56            push    esi
    0057DFA1  |.  57            push    edi
    0057DFA2  |.  8BF9          mov     edi, ecx
    0057DFA4  |.  8955 FC       mov     dword ptr [ebp-4], edx
    0057DFA7  |.  8BF0          mov     esi, eax
    0057DFA9  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0057DFAC  |.  E8 5F6FE8FF   call    00404F10
    0057DFB1  |.  33C0          xor     eax, eax
    0057DFB3  |.  55            push    ebp
    0057DFB4  |.  68 2CE15700   push    0057E12C
    0057DFB9  |.  64:FF30       push    dword ptr fs:[eax]
    0057DFBC  |.  64:8920       mov     dword ptr fs:[eax], esp
    0057DFBF  |.  8D55 DC       lea     edx, dword ptr [ebp-24]
    0057DFC2  |.  8BC6          mov     eax, esi
    0057DFC4  |.  E8 070F0000   call    0057EED0
    0057DFC9  |.  8B45 DC       mov     eax, dword ptr [ebp-24]          ;  取出软件机器码!
    0057DFCC  |.  8D55 EC       lea     edx, dword ptr [ebp-14]
    0057DFCF  |.  E8 FCB7E8FF   call    004097D0
    0057DFD4  |.  837D EC 00    cmp     dword ptr [ebp-14], 0            ;  机器码与0比较。
    0057DFD8  |.  75 0D         jnz     short 0057DFE7
    0057DFDA  |.  8D45 E0       lea     eax, dword ptr [ebp-20]
    0057DFDD  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
    0057DFE0  |.  E8 136BE8FF   call    00404AF8
    0057DFE5  |.  EB 5D         jmp     short 0057E044
    0057DFE7  |>  8B45 EC       mov     eax, dword ptr [ebp-14]          ;  堆栈显示机器码!
    0057DFEA  |.  E8 316DE8FF   call    00404D20
    0057DFEF  |.  8BD8          mov     ebx, eax
    0057DFF1  |.  8D45 E8       lea     eax, dword ptr [ebp-18]
    0057DFF4  |.  50            push    eax
    0057DFF5  |.  8BCB          mov     ecx, ebx
    0057DFF7  |.  D1F9          sar     ecx, 1
    0057DFF9  |.  79 03         jns     short 0057DFFE
    0057DFFB  |.  83D1 00       adc     ecx, 0
    0057DFFE  |>  BA 01000000   mov     edx, 1
    0057E003  |.  8B45 EC       mov     eax, dword ptr [ebp-14]          ;  将机器码送入EAX中。
    0057E006  |.  E8 756FE8FF   call    00404F80
    0057E00B  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
    0057E00E  |.  50            push    eax
    0057E00F  |.  8BC3          mov     eax, ebx
    0057E011  |.  D1F8          sar     eax, 1
    0057E013  |.  79 03         jns     short 0057E018
    0057E015  |.  83D0 00       adc     eax, 0
    0057E018  |>  8BCB          mov     ecx, ebx
    0057E01A  |.  2BC8          sub     ecx, eax
    0057E01C  |.  8BD3          mov     edx, ebx
    0057E01E  |.  D1FA          sar     edx, 1
    0057E020  |.  79 03         jns     short 0057E025
    0057E022  |.  83D2 00       adc     edx, 0
    0057E025  |>  42            inc     edx
    0057E026  |.  8B45 EC       mov     eax, dword ptr [ebp-14]          ;  堆栈显示机器码!
    0057E029  |.  E8 526FE8FF   call    00404F80                         ;  这个CALL是取机器码前六位。
    0057E02E  |.  FF75 E8       push    dword ptr [ebp-18]               ;  取机器码前六位!
    0057E031  |.  FF75 FC       push    dword ptr [ebp-4]                ;  预设字符串.
    0057E034  |.  FF75 E4       push    dword ptr [ebp-1C]               ;  取机器码后六位.
    0057E037  |.  8D45 E0       lea     eax, dword ptr [ebp-20]
    0057E03A  |.  BA 03000000   mov     edx, 3
    0057E03F  |.  E8 9C6DE8FF   call    00404DE0
    0057E044  |>  C745 F0 00000>mov     dword ptr [ebp-10], 0
    0057E04B  |.  C745 F4 00000>mov     dword ptr [ebp-C], 0
    0057E052  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0057E055  |.  E8 C66CE8FF   call    00404D20
    0057E05A  |.  3B46 4C       cmp     eax, dword ptr [esi+4C]
    0057E05D  |.  7F 0D         jg      short 0057E06C                   ;  预设字符串.
    0057E05F  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0057E062  |.  E8 B96CE8FF   call    00404D20
    0057E067  |.  3B46 50       cmp     eax, dword ptr [esi+50]
    0057E06A  |.  7D 0C         jge     short 0057E078
    0057E06C  |>  8BC7          mov     eax, edi
    0057E06E  |.  E8 ED69E8FF   call    00404A60
    0057E073  |.  E9 91000000   jmp     0057E109                         ;  哦!仔细看堆栈.显示如下:
    0057E078  |>  8B45 E0       mov     eax, dword ptr [ebp-20]          ;  取机器码前六位与字符串相连再连接上机器码后六位。
    0057E07B  |.  E8 A06CE8FF   call    00404D20
    0057E080  |.  8BD8          mov     ebx, eax
    0057E082  |.  EB 37         jmp     short 0057E0BB
    0057E084  |>  8B45 F0       /mov     eax, dword ptr [ebp-10]         ;  一个关键点!核心算法相关。
    0057E087  |.  8B55 F4       |mov     edx, dword ptr [ebp-C]
    0057E08A  |.  0346 68       |add     eax, dword ptr [esi+68]         ;  用预设数值:075BCD15(123456789),作减法运算。
    0057E08D  |.  1356 6C       |adc     edx, dword ptr [esi+6C]         ;  带位加法运算。
    0057E090  |.  52            |push    edx
    0057E091  |.  50            |push    eax
    0057E092  |.  8B45 E0       |mov     eax, dword ptr [ebp-20]         ;  把连接后的字符串放到EAX中。
    0057E095  |.  0FB64418 FF   |movzx   eax, byte ptr [eax+ebx-1]       ;  从后面逐位取ASCII值。
    0057E09A  |.  50            |push    eax                             ;  把取得值放到EAX中。
    0057E09B  |.  B8 59040000   |mov     eax, 459                        ;  把预设数459(十进制:1113)放到EAX中。
    0057E0A0  |.  5A            |pop     edx                             ;  把每位的ASCII放到EDX中。
    0057E0A1  |.  8BCA          |mov     ecx, edx
    0057E0A3  |.  33D2          |xor     edx, edx                        ;  异或EDX.
    0057E0A5  |.  F7F1          |div     ecx                             ;  除完取余,放入EDX中。
    0057E0A7  |.  8BC2          |mov     eax, edx                        ;  把余数放到EAX中。
    0057E0A9  |.  33D2          |xor     edx, edx                        ;  异或EDX.
    0057E0AB  |.  290424        |sub     dword ptr [esp], eax            ;  用预设数值:075BCD15(123456789),每次减余数。
    0057E0AE  |.  195424 04     |sbb     dword ptr [esp+4], edx
    0057E0B2  |.  58            |pop     eax
    0057E0B3  |.  5A            |pop     edx
    0057E0B4  |.  8945 F0       |mov     dword ptr [ebp-10], eax         ;  把EAX的值放到[EBP-10]。
    0057E0B7  |.  8955 F4       |mov     dword ptr [ebp-C], edx
    0057E0BA  |.  4B            |dec     ebx                             ;  EBX作为循环变量,数值减1.
    0057E0BB  |>  8B45 E0        mov     eax, dword ptr [ebp-20]         ;  再次把连接后的机器码字符放到EAX中。
    0057E0BE  |.  E8 5D6CE8FF   |call    00404D20
    0057E0C3  |.  3BD8          |cmp     ebx, eax                        ;  比较循环变量与连接后机器码的长度.
    0057E0C5  |.  7F 04         |jg      short 0057E0CB
    0057E0C7  |.  85DB          |test    ebx, ebx
    0057E0C9  |.^ 7F B9         \jg      short 0057E084                  ;  跳回0057E084。通过计算,转换为十六进制。在前面加四个0,就是注册码!
    0057E0CB  |>  8B5E 60       mov     ebx, dword ptr [esi+60]
    0057E0CE  |.  85DB          test    ebx, ebx
    0057E0D0  |.  7F 11         jg      short 0057E0E3
    0057E0D2  |.  FF75 F4       push    dword ptr [ebp-C]                ; /Arg2
    0057E0D5  |.  FF75 F0       push    dword ptr [ebp-10]               ; |Arg1
    0057E0D8  |.  8BD7          mov     edx, edi                         ; |
    0057E0DA  |.  33C0          xor     eax, eax                         ; |
    0057E0DC  |.  E8 EBBCE8FF   call    00409DCC                         ; \LKYD.00409DCC
    0057E0E1  |.  EB 26         jmp     short 0057E109
    0057E0E3  |>  FF75 F4       push    dword ptr [ebp-C]                ; /Arg2
    0057E0E6  |.  FF75 F0       push    dword ptr [ebp-10]               ; |Arg1
    0057E0E9  |.  8BD7          mov     edx, edi                         ; |
    0057E0EB  |.  8BC3          mov     eax, ebx                         ; |
    0057E0ED  |.  E8 DABCE8FF   call    00409DCC                         ; \LKYD.00409DCC
    0057E0F2  |.  8B07          mov     eax, dword ptr [edi]
    0057E0F4  |.  E8 276CE8FF   call    00404D20
    0057E0F9  |.  8BC8          mov     ecx, eax
    0057E0FB  |.  2B4E 60       sub     ecx, dword ptr [esi+60]
    0057E0FE  |.  8B56 60       mov     edx, dword ptr [esi+60]
    0057E101  |.  42            inc     edx
    0057E102  |.  8BC7          mov     eax, edi
    0057E104  |.  E8 B76EE8FF   call    00404FC0
    0057E109  |>  33C0          xor     eax, eax
    0057E10B  |.  5A            pop     edx
    0057E10C  |.  59            pop     ecx
    0057E10D  |.  59            pop     ecx
    0057E10E  |.  64:8910       mov     dword ptr fs:[eax], edx
    0057E111  |.  68 33E15700   push    0057E133
    0057E116  |>  8D45 DC       lea     eax, dword ptr [ebp-24]
    0057E119  |.  BA 05000000   mov     edx, 5
    0057E11E  |.  E8 6169E8FF   call    00404A84
    0057E123  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
    0057E126  |.  E8 3569E8FF   call    00404A60
    0057E12B  \.  C3            retn
    ---------------------------------------------------------------------------------------
    完美爆破点:右键,查找字符,找到“您还有”,"天试用期,如需注册请联系:电话:0537-2893131 13054952031 现在是否注册?",双击,向上翻,来到下面:
    -------------------------------------------------------------------------------------------------------------
    006C4F77  |.  E8 F0FED3FF   CALL LKYD.00404E6C
    006C4F7C  |.  0F84 3F010000 JE LKYD.006C50C1                         ;  爆破点,JE修改为JMP,取消所有时间和注册对话框提示!
    006C4F82  |.  A1 9C9F6D00   MOV EAX,DWORD PTR DS:[6D9F9C]
    006C4F87  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    006C4F89  |.  8B80 2C030000 MOV EAX,DWORD PTR DS:[EAX+32C]
    006C4F8F  |.  E8 B08FEBFF   CALL LKYD.0057DF44
    006C4F94  |.  8D55 C0       LEA EDX,DWORD PTR SS:[EBP-40]
    006C4F97  |.  E8 F44CD4FF   CALL LKYD.00409C90
    006C4F9C  |.  8B45 C0       MOV EAX,DWORD PTR SS:[EBP-40]
    006C4F9F  |.  BA A4516C00   MOV EDX,LKYD.006C51A4                    ;  0
    006C4FA4  |.  E8 C3FED3FF   CALL LKYD.00404E6C
    006C4FA9  |.  0F84 A2000000 JE LKYD.006C5051
    006C4FAF  |.  6A 01         PUSH 1
    006C4FB1  |.  68 38526C00   PUSH LKYD.006C5238                       ;  您还有
    006C4FB6  |.  A1 9C9F6D00   MOV EAX,DWORD PTR DS:[6D9F9C]
    006C4FBB  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    006C4FBD  |.  8B80 2C030000 MOV EAX,DWORD PTR DS:[EAX+32C]
    006C4FC3  |.  E8 7C8FEBFF   CALL LKYD.0057DF44
    006C4FC8  |.  8D55 B8       LEA EDX,DWORD PTR SS:[EBP-48]
    006C4FCB  |.  E8 C04CD4FF   CALL LKYD.00409C90
    006C4FD0  |.  FF75 B8       PUSH DWORD PTR SS:[EBP-48]
    006C4FD3  |.  68 48526C00   PUSH LKYD.006C5248                       ;  天试用期,如需注册请联系:电话:0537-2893131 13054952031 现在是否注册?
    006C4FD8  |.  8D45 BC       LEA EAX,DWORD PTR SS:[EBP-44]
    006C4FDB  |.  BA 03000000   MOV EDX,3
    006C4FE0  |.  E8 FBFDD3FF   CALL LKYD.00404DE0
    006C4FE5  |.  8B45 BC       MOV EAX,DWORD PTR SS:[EBP-44]
    006C4FE8  |.  E8 33FFD3FF   CALL LKYD.00404F20
    006C4FED  |.  8BD0          MOV EDX,EAX
    006C4FEF  |.  B9 90526C00   MOV ECX,LKYD.006C5290                    ;  询问
    006C4FF4  |.  A1 789C6D00   MOV EAX,DWORD PTR DS:[6D9C78]
    006C4FF9  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    006C4FFB  |.  E8 586BDEFF   CALL LKYD.004ABB58
    006C5000  |.  48            DEC EAX
    006C5001  |.  0F85 DC000000 JNZ LKYD.006C50E3
    006C5007  |.  A1 9C9F6D00   MOV EAX,DWORD PTR DS:[6D9F9C]
    006C500C  |.  8338 00       CMP DWORD PTR DS:[EAX],0
    006C500F  |.  75 17         JNZ SHORT LKYD.006C5028
    006C5011  |.  8B4D FC       MOV ECX,DWORD PTR SS:[EBP-4]
    006C5014  |.  B2 01         MOV DL,1
    006C5016  |.  A1 1CFC6300   MOV EAX,DWORD PTR DS:[63FC1C]
    006C501B  |.  E8 B0EFDDFF   CALL LKYD.004A3FD0
    006C5020  |.  8B15 9C9F6D00 MOV EDX,DWORD PTR DS:[6D9F9C]            ;  LKYD.006DD430
    006C5026  |.  8902          MOV DWORD PTR DS:[EDX],EAX
    006C5028  |>  A1 9C9F6D00   MOV EAX,DWORD PTR DS:[6D9F9C]
    006C502D  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    006C502F  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
    006C5031  |.  FF92 EC000000 CALL DWORD PTR DS:[EDX+EC]
    006C5037  |.  A1 9C9F6D00   MOV EAX,DWORD PTR DS:[6D9F9C]
    006C503C  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    006C503E  |.  E8 ADEBD3FF   CALL LKYD.00403BF0
    006C5043  |.  A1 9C9F6D00   MOV EAX,DWORD PTR DS:[6D9F9C]
    006C5048  |.  33D2          XOR EDX,EDX
    006C504A  |.  8910          MOV DWORD PTR DS:[EAX],EDX
    006C504C  |.  E9 92000000   JMP LKYD.006C50E3
    006C5051  |>  6A 01         PUSH 1
    006C5053  |.  B9 90526C00   MOV ECX,LKYD.006C5290                    ;  询问
    006C5058  |.  BA 98526C00   MOV EDX,LKYD.006C5298                    ;  您的试用期已到期,如需注册请联系:电话:0537-2893131 13054952031 现在是否注册?
    006C505D  |.  A1 789C6D00   MOV EAX,DWORD PTR DS:[6D9C78]
    006C5062  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
    006C5064  |.  E8 EF6ADEFF   
    -------------------------------------------------------------------------------------------------------------
    【爆破总结】
    -------------------------------------------------------------------------------------------------------------
    00640084  |.  E8 2BBAE6FF   CALL LKYD.004ABAB4        ;爆破点,取消重启验证注册码!
    0064000D  |.  75 2C         JNZ SHORT LKYD.0064003B   ;JNZ修改为JE,跳过不正确注册码提示!
    006C4F7C  |.  0F84 3F010000 JE LKYD.006C50C1          ;JE修改为JMP,取消所有时间和注册对话框提示!
    0057E446  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10] ; 出现真码,堆栈 ss:[0012F0B0]=0179240C, (ASCII "0000932C03CB")
    0057E449  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]  ; eax=0012F094
    -------------------------------------------------------------------------------------------------------------
    【算法总结】
    1、首先是取机器码前六位与固定字符串 TOPTHINK 相连接再连接机器码的后六位.
    2、把一个固定的数值放到EAX中,进行累减 075BCD15 (123456789).从后面逐位取ASCII值。
    3、再把一个固定数459 (十六进制) 1113 (十进制) 存上.除每一位的ASCII值取余数.
    4、用EAX累加值减去余数.得到的值以十六进制显示,再在前面补上四个0000,便是相应的注册码。
    ---------------------------------------------------------------------------------------------------
    内存注册机信息:
    中断地址:0057E449
    中断次数:1
    第一字节:8B
    指令长度:3
    右边:注册码=》内存方式=》寄存器=》EAX=》生成该软件内存注册机.
    ---------------------------------------------------------------------------------------------------
    【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!

    [ 本帖最后由 易之侠 于 2007-5-27 19:22 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-6 09:28
  • 签到天数: 121 天

    [LV.7]常住居民III

    发表于 2007-6-15 10:06:06 | 显示全部楼层
    下载收藏破一下
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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