- UID
- 8563
注册时间2006-2-26
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 开心 2025-1-7 13:59 |
---|
签到天数: 19 天 [LV.4]偶尔看看III
|
【破文标题】亿诚医药管理软件 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
|