欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

速达<SPAN CLASS="pediy">3000PRO加密狗软件学习 (5千字)

速达<SPAN CLASS="pediy">3000PRO加密狗软件学习 (5千字)

我写这篇文章是以技术交流为主,希望论坛的前辈多多指点。
       
    看过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界的前辈学习一下,不知有人愿意否,如有请留言,我会及时和你联系!
                      -------青石

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功