- UID
 - 12841
 
 注册时间2006-5-11
阅读权限10
最后登录1970-1-1
周游历练 
  
 
 
 
该用户从未签到  
 | 
 
【文章标题】: 康泉中医处方2.1破解 
【文章作者】: 给你阳光 
【作者邮箱】: [email protected] 
【作者QQ号】: 195018614 
【软件名称】: 康泉中医处方2.1 
【下载地址】: http://download.enet.com.cn/html/030282008090207.html 
【加壳方式】: PECompact,AsPack,UPX 
【保护方式】: 机器码+用户名+注册码 
【编写语言】: Delphi 
【使用工具】: OD1.1,Peid0.94, 
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! 
【软件介绍】康泉中药处方大全是康泉工作室制作开发的中药处方软件,共收录了内科、外科、妇科、儿科、皮肤科、骨伤科、五官科、男科等不同科别的311种病例、1232种中药处方,2.1版在原1.0版的基础上增加了不同病例不同处方,修改操作界面,方便用户进行药方查询及显示、编辑、打印等操作,适合家庭用户及对西药过敏的不同年龄层次的用户,也适合于不同规模的中医诊所及中医学院学生进行研究学习 
-------------------------------------------------------------------------------- 
【详细过程】 
1.这个小软件加了三层壳:PECompact 2.5 Retail ASPack v2.12 UPX 0.89.6 - 1.02 脱壳过程就省略了…… 
 
2.脱壳成功后,OD载入; 
 
0060DE88 >  55              PUSH EBP  ; // 停留在这里 
0060DE89    8BEC            MOV EBP,ESP 
0060DE8B    83C4 F0         ADD ESP,-10 
0060DE8E    53              PUSH EBX 
0060DE8F    B8 60D66000     MOV EAX,un2_.0060D660 
0060DE94    E8 F793DFFF     CALL un2_.00407290 
0060DE99    8B1D 281A6100   MOV EBX,DWORD PTR DS:[611A28]            ; un2_.00612C38 
0060DE9F    8B03            MOV EAX,DWORD PTR DS:[EBX] 
0060DEA1    E8 7610E6FF     CALL un2_.0046EF1C 
0060DEA6    8B0D EC1B6100   MOV ECX,DWORD PTR DS:[611BEC]            ; un2_.006133EC  
 
3.查找ASCII 字符串 找到如下提示处: 
 
超级字串参考, 项目 4454 
 地址=0060559B 
 反汇编=PUSH un2_.00605800 
 文本字串=用户名不能为空!  
 
在地址=0060559B 上回车跟进,来到 
 
00605594    6A 30           PUSH 30 
00605596    68 F8576000     PUSH un2_.006057F8                       ; 提示 
0060559B    68 00586000     PUSH un2_.00605800                       ; 用户名不能为空! 
006055A0    8BC3            MOV EAX,EBX  
 
我们往上找,来到 
 
  00605502    8BD8            MOV EBX,EAX  ; // F2 此处下断 
  00605504    33C0            XOR EAX,EAX 
  00605506    55              PUSH EBP 
  00605507    68 CE576000     PUSH un2_.006057CE 
  0060550C    64:FF30         PUSH DWORD PTR FS:[EAX] 
  0060550F    64:8920         MOV DWORD PTR FS:[EAX],ESP 
  00605512    8D4D E8         LEA ECX,DWORD PTR SS:[EBP-18] 
  00605515    A1 EC1B6100     MOV EAX,DWORD PTR DS:[611BEC] 
  0060551A    8B00            MOV EAX,DWORD PTR DS:[EAX] 
  0060551C    8B80 78030000   MOV EAX,DWORD PTR DS:[EAX+378] 
  00605522    BA E4576000     MOV EDX,un2_.006057E4               ; keysn 
  00605527    E8 5CFAEAFF     CALL un2_.004B4F88 
 
…………………………………………………… 
 
  00605751    EB 19           JMP SHORT un2_.0060576C 
  00605753    6A 10           PUSH 10 
  00605755    68 78586000     PUSH un2_.00605878                  ; 请重新输入 
  0060575A    68 84586000     PUSH un2_.00605884                  ; 注册码错误!(F2下断)  
 
F9 运行,输入用户名和假码后中断在 
 
  00605502    8BD8            MOV EBX,EAX  ; // F2 此处下断 
  00605504    33C0            XOR EAX,EAX 
  00605506    55              PUSH EBP  
 
F8 单步,注意观察寄存器和堆栈窗口的变化,可以很明确的看到如下代码 
 
  0060553D    E8 76FAFFFF     CALL un2_.00604FB8 
  00605542    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]        ; //得到真码 
  00605545    50              PUSH EAX                            ; //寄存器 EAX获得真码 
  00605546    8D55 E4         LEA EDX,DWORD PTR SS:[EBP-1C]       ; //堆栈出现真码 
  00605549    8B83 F8020000   MOV EAX,DWORD PTR DS:[EBX+2F8]      ; //这里可能是注册机地址(结果证明不是) 
  0060554F    E8 8C88E4FF     CALL un2_.0044DDE0 
  00605554    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]       ; //获取假码 
  00605557    58              POP EAX                             ; //真假 
  00605558    E8 A7F9DFFF     CALL un2_.00404F04                  ; //比较真假码(注册机地址)  
 
4.用KeyMake 制作注册机即可。 
 
中断地址:605558 
中断次数:1 
第一字节:E8 
指令长度:5 
 
内存方式--寄存器--EAX  
 
至此,破解及注册机制作完成.第一次写破文,还不熟悉,老鸟指教! 
-------------------------------------------------------------------------------- 
【版权声明】: 本文原创于PYG论坛, 转载请注明作者并保持文章的完整, 谢谢! 
 
                                                       2008年09月16日 14:56:52 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |