- 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 |
评分
-
查看全部评分
|