我写这篇文章是以技术交流为主,希望论坛的前辈多多指点。
看过XIAQIN[CCG]的文章后,想找个速达3000PRO加密狗软件学习一下。恰好我有个朋友是其地区级的代理商,我去找到他给我了一张试用光盘,一看上面什么软件都有,于是决定试试。
下面谈谈我的学习过程。
这是小弟第六次学习加密狗的软件,水平有限。不足之处,请各位大侠指点。
软件简介:《速达3000 PRO》软件是非常著名的进销存财务软件。
破解工具:
Trw2000
SuperBPM
WINHEX
OFFCAL
在没有安装加密狗之前,在启动软件时会弹出“未检测到本软件使用的软件狗,本软件将工作试验版状态”对话框。在软件的启动画面中醒目的有红色“试用版”三个字。就进入了“选择公司帐套”。在进入软件后。在
“关于速达3000 PRO”中同样有红色“试用版”三个字。
该软件静态分析时列机(用的W32Dasm),IDA又太慢,所以只好直接动态分析了。经过仔细跟踪来到CC3250.EXE的领空,继续单步跟踪,一路上有很多的花指令,但用点技巧也是很容易走出来的。直到:
0167:3257DBEB PUSH EAX
0167:3257DBEC CALL
NEAR [ESI+18] //F10走过时弹出对话框,F8进入
0167:3257DBEF ADD ESP,BYTE +10
0167:3257DBF2
PUSH EAX
0167:3257DBF3 CALL `CC3250MT!_exit`
0167:3257DBF8 POP ECX
0167:3257DBF9
JMP SHORT 3257DC1C
0167:3257DBFB MOV
EDX,[325AD400]
0167:3257DC01 PUSH EDX
0167:3257DC02
MOV ECX,[325AD3FC]
从3257DBEC进入后来到:
.
.
.
0167:00401859 XOR
EAX,EAX
0167:0040185B MOV EDX,[EBP-38]
0167:0040185E MOV [FS:00],EDX
0167:00401865
JMP 00401C52
0167:0040186A MOV
BYTE [00B25934],00
0167:00401871 CMP BYTE [00B25934],00
0167:00401878 JNZ NEAR 004019A1
0167:0040187E
MOV BYTE [00B25934],01
0167:00401885 CALL
00939944
0167:0040188A TEST AL,AL
0167:0040188C
JZ 0040189A
0167:0040188E MOV
BYTE [00B25934],00
0167:00401895 JMP 00401963
0167:0040189A MOV WORD [EBP-28],14
0167:004018A0
LEA EAX,[EBP-08]
0167:004018A3 CALL
00401C5C
0167:004018A8 INC DWORD [EBP-1C]
0167:004018AB CALL `SD3000PRO!@Dogtestpro@_ManCheckDlgDan$qqrv`
//DOG
0167:004018B0 MOV WORD [EBP-28],08
0167:004018B6
MOV WORD [EBP-28],20
0167:004018BC MOV
EDX,00942C1F
0167:004018C1 LEA EAX,[EBP-0C]
0167:004018C4 CALL 00939C34
0167:004018C9 INC
DWORD [EBP-1C]
0167:004018CC LEA
EDX,[EBP-0C]
0167:004018CF LEA EAX,[EBP-08]
0167:004018D2 CALL 00939FAC
0167:004018D7 PUSH
EAX
0167:004018D8 DEC DWORD [EBP-1C]
0167:004018DB LEA EAX,[EBP-0C]
0167:004018DE
MOV EDX,02
0167:004018E3 CALL 00939EC8
0167:004018E8 POP ECX
0167:004018E9
TEST CL,CL
0167:004018EB JZ 004018FF
0167:004018ED CALL `SD3000PRO!@Dogtestpro@_GoldenSoftCheckdlgDan$qqrv`
0167:004018F2 TEST AL,AL
0167:004018F4 JZ
0040194D
0167:004018F6 MOV BYTE [00B25934],00
.
.
.
0167:00401932
TEST CL,CL
0167:00401934 JZ 0040194D
0167:00401936 XOR EAX,EAX
0167:00401938
CALL 00427814
0167:0040193D TEST AL,AL
0167:0040193F JZ 0040194D
0167:00401941 CALL
`SD3000PRO!@Dogtestpro@WriteNewInfo$qqrv` //DOG
0167:00401946
MOV BYTE [00B25934],00
0167:0040194D DEC
DWORD [EBP-1C]
0167:00401950 LEA
EAX,[EBP-08]
0167:00401953 MOV EDX,02
0167:00401958
CALL 00939EC8
0167:0040195D MOV WORD
[EBP-28],00
0167:00401963 CMP BYTE [00B25934],00
0167:0040196A JZ 004019A1
0167:0040196C
MOV WORD [EBP-28],38
0167:00401972 MOV
EDX,00942C23
.
.
.
从上面我们很容易发现[00b25934]的多次出现,且鞭后都跟有
比较指令,实际上[00b25934]值是0时表示有狗。我们看看是哪
个地方改变了[00b25934]的值。我们下断点监看到的写操作。
等拦断后来到:
0167:00401871
CMP BYTE [00B25934],00
0167:00401878 JNZ
NEAR 004019A1 //此处如果让它直接跳走,即成为正式版了
0167:0040187E
MOV BYTE [00B25934],01 //如果上面没有跳走,这里把01改成00也能成为正式版
0167:00401885 CALL 00939944
0167:0040188A TEST
AL,AL
0167:0040188C JZ 0040189A
0167:0040188E
MOV BYTE [00B25934],00
0167:00401895 JMP
00401963
0167:0040189A MOV WORD [EBP-28],14
0167:004018A0 LEA EAX,[EBP-08]
0167:004018A3
CALL 00401C5C
0167:004018A8 INC DWORD
[EBP-1C]
0167:004018AB CALL `SD3000PRO!@Dogtestpro@_ManCheckDlgDan$qqrv`
0167:004018B0 MOV WORD [EBP-28],08
0167:004018B6
MOV WORD [EBP-28],20
0167:004018BC MOV
EDX,00942C1F
0167:004018C1 LEA EAX,[EBP-0C]
0167:004018C4 CALL 00939C34
0167:004018C9 INC
DWORD [EBP-1C]
0167:004018CC LEA
EDX,[EBP-0C]
0167:004018CF LEA EAX,[EBP-08]
0167:004018D2 CALL 00939FAC
0167:004018D7 PUSH
EAX
0167:004018D8 DEC DWORD [EBP-1C]
0167:004018DB LEA EAX,[EBP-0C]
0167:004018DE
MOV EDX,02
0167:004018E3 CALL 00939EC8
0167:004018E8 POP ECX
0167:004018E9
TEST CL,CL
0167:004018EB JZ 004018FF
0167:004018ED CALL `SD3000PRO!@Dogtestpro@_GoldenSoftCheckdlgDan$qqrv`
0167:004018F2 TEST AL,AL
0167:004018F4 JZ
0040194D
0167:004018F6 MOV BYTE [00B25934],00
0167:004018FD JMP SHORT 0040194D
0167:004018FF
MOV WORD [EBP-28],2C
0167:00401905 MOV
EDX,00942C21
可见,改这个软件只需一个字节,而且测试三次的结算限制也没了。下一篇我想写写SD-ERP网络版丢狗方法
和某著名工程预算软件的丢狗方法。在下水平有限,想和各位打狗高手及
PJ界的前辈学习一下,不知有人愿意否,如有请留言,我会及时和你联系!
-------青石
- 标 题:速达3000PRO加密狗软件学习 (5千字)
- 作 者:木龙
- 时 间:2003-2-18
18:51:53
- 链 接:http://bbs.pediy.com