文晟扫描5. 0 是一个优秀的扫描软件,该软件智能化较高,容易上手,使用方便,并且不需过多设置就可使用其强大的功能。只是它的试用期只有30天,到期后,该软件将自动锁死。。。让你无法使用。这样的行为,是包括我在内的所有carcker所不能容忍的!
软件名称:文晟扫描5. 0
保护方式:机器码加注册码
破解工具:softice 4.05
破解思路:方案一
、通过动态跟踪,获得注册码 。
方案二 、在方案一失败的情况下,找准突破口,编缉代码,采取暴破。
Bgein !
一、载入softice在win98之前。
二、启动文晟扫描5.0并打开注册对话框,此注册对话框内分别有机器码文本框和注册码输入框,我们可以看到在机器码文本框里,程序给出了机器码:8A8A2ABC1372D380-2319B499(我的是这个,每台计算机的机器码都不相同),程序要做的是用这个只产生于一台计算机的机器码通过一定的算法来产生注册码,然后来验证我们输入的注册码是否正确,从而限制免费用户的长期使用。。。我们不用管它,在密码输入框内输入8888888888888888888888888(随意,意为让软件作者发发发发发。。。呵呵。。。)后,用ctrl+d呼出softice,设置专门用于挡截内存copy动作的断点bpx
hmemcpy,然后按F5继续运行程序,当我们点击注册码输入框的确定按钮时,马上被softice成功挡截。
三、bd *
四、按F12七次之后,来到文晟扫描5.0的领空:
0167:00512A12 CALL 00559ADC
-----------调用我们输入的密码
0167:00512A17 POP
ECX
0167:00512A18 POP
ECX
0167:00512A19 POP EBP
。。。。。。。。。。。。。
0167:00512A4D TEST AL,04
---------没什么值得怀疑,我都D 某某过了 ,呵呵 。。。
0167:00512A4F JNZ
00512A68
0167:00512A51 PUSH 00
0167:00512A53 PUSH 03
0167:00512A55
PUSH 000000D3
0167:00512A5A MOV EAX,[EBP-04]
0167:00512A5D
CALL 0055CC00
哪哪哪哪哪哪哪哪哪SCANIMAGE!.text+00111A12哪哪哪哪哪哪---------程序领空
五、如下所示,按F10一直到0167:004167E2 CALL
004DCB70 停下,为什么要在这里停下呢?原因有两个,第一,下d ecx 出现程序给出的机器码:8A8A2ABC1372D380-2319B499及我们输入的试探密码:8888888888888888888888888。第二,你只要再敢走一步,程序马上就要弹出密码错误提示框了(不信你试试:),所以,我们别无选择,按F8进入此call
。。。
0167:004167D9
MOV EDX,[EDX]
0167:004167DB MOV EAX,[EBX+000002F8]
0167:004167E1 POP
ECX
0167:004167E2 CALL 004DCB70
-------下d
ecx 出现试探码及机器码 ,可疑!如果
0167:004167E7 DEC DWORD
PTR [EBP-10] 再往下 走,我们要提前出局了,只有按F8
。。
0167:004167EA LEA EAX,[EBP-08]
0167:004167ED
MOV EDX,00000002
0167:004167F2 CALL 005B1A28
六、进入后,我们来到这里:
0167:004DCB6F RET
--------程序在这里停下
0167:004DCB70
PUSH EBP
0167:004DCB71 MOV
EBP,ESP
0167:004DCB73 ADD ESP,-10
0167:004DCB76
MOV [EBP-0C],ECX
0167:004DCB79 MOV [EBP-08],EDX
0167:004DCB7C
MOV [EBP-04],EAX
0167:004DCB7F MOV EAX,[EBP-08]
0167:004DCB82
CALL 005A20A0
---------注意这里,d eax 指向的机器码
0167:004DCB87
MOV EAX,[EBP-0C]
d ecx指向我们试探码
0167:004DCB8A
CALL 005A20A0
0167:004DCB8F XOR EAX,EAX
。。。。。。。。。
七、其它都没什么值得怀疑的,按F10往下走。。。
0167:004DCC67
MOV EAX,[EBP-10]
0167:004DCC6A CALL 00517714
0167:004DCC6F
MOV EAX,[EBP-10]
0167:004DCC72 CALL 005A0E7C
0167:004DCC77
MOV EAX,[EBP-04]
0167:004DCC7A CALL 004DD080
--------注意这里,再往后一步就game
over !
0167:004DCC7F
MOV EAX,[EBP-04]
别无它路 ,按F8跟进此call...
0167:004DCC82 CMP BYTE PTR [EAX+2B],00
0167:004DCC86 JZ 004DCC90
0167:004DCC88
MOV EAX,[EBP-04]
0167:004DCC8B CALL 004DC9F0
0167:004DCC90
XOR EAX,EAX
八、按F8进入之后,不知按了多少次F10也不知被这狡猾的程序把softice花了多少次脸后(没事儿的,花脸之后,按F4两次就可以恢复正常),来到以下地方:
0167:004DD1CD CALL 005A1FFC
------- 注意这里,d eax 指向机器码及试探码
0167:004DD1D2
JZ 004DD22D
d edx指向正确的注册码
0167:004DD1D4 CMP
DWORD PTR [EBP-0C],00
0167:004DD1D8
JZ 004DD1E2
0167:004DD1DA MOV
EAX,[EBP-04]
0167:004DD1DD CALL 004DC9CC
。。。。。。。。。。。。。。。。。。。。。
九、大家看到,程序在一番疯来疯去之后。。。:)来到0167:004DD1CD CALL
005A1FFC,我们在这里停下,d eax指向8888888888888888888888888 和8A8A2ABC1372D380-2319B499而
d edx则指向lplG5dLhCzg3bWoqtx556Mh7jVvgmEat 看来,这就是我们要找的注册码.
十、继续跟踪,验证我们的推断。。。经过了多次证实。。。。不久后光荣退出。。。
十一、将我们得到的注册码输入后(一定要注意大小写)。。。。程序弹出:“注册成功”。。。
脱狱!。。。现在,我们可以无限制的使用了,不过,这不是我们的目的,我们的目的永远是提高,再提高!
十二 、总结此次破解,得出经验:1,验证注册码的子程序一般都会露出马脚。2,验证注册码的子程序结束之后一般都会让你game
over。3,有时,抓住最后的机会是成功“脱狱”的关键之所在!
飞龙狗狗
- 标 题:文晟扫描5. 0 之破解经过 (7千字)
- 作 者:bluearc
- 时 间:2002-9-25 22:10:54
- 链 接:http://bbs.pediy.com