飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6228|回复: 17

[求助] 如何去除连网限制?

  [复制链接]
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-7-17 17:22:23 | 显示全部楼层 |阅读模式
    本帖最后由 老万 于 2010-7-18 22:10 编辑

    今天我破解了一个PYG软件库里边一个软件,分析了它的算法,推出了注册码,注册后显示“注册成功”,软件重启后进行网络验证,仍显示未注册,修改启动验证时的跳转,可以得到完美的破解版,但是如果电脑不联网的话,软件就启动不了,希望高手分析一下,我的分析过程如下:

    【目标程序:】机动车驾驶人考试培训系统2010(速成版)

    【下载地址:】http://down.qiannao.com/space/file/zgmap/share/2010/7/13/Setup(2010.4.1all).rar
    【PEID査壳:】 Borland Delphi 6.0 - 7.0

    【破解过程:】
    下面直接来到关键地方:
    005FAC6A   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    005FAC6D   .  E8 EEE4FFFF   CALL jzks.005F9160                       ;  启动时验证算法
    005FAC72   .  8B95 54FEFFFF MOV EDX,DWORD PTR SS:[EBP-1AC]           ;  机器码
    005FAC78   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  注册码加密计算后的值
    005FAC7B   .  E8 04A1E0FF   CALL jzks.00404D84                       ;  机器码与注册码加密计算后的值进行比较,如果相等的话,就注册成功
    005FAC80      0F85 9A000000 JNZ jzks.005FAD20                        ;  关键跳
    005FAC86   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
    005FAC89   .  BA DCAE5F00   MOV EDX,jzks.005FAEDC                    ;  pass
    005FAC8E   .  E8 F1A0E0FF   CALL jzks.00404D84                       ;  判断验证是否通过
    005FAC93   .  74 0F         JE SHORT jzks.005FACA4                   ;  软件注册码如果网络验证通过的话,此处就跳,成为全功能版
    005FAC95   .  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
    005FAC98   .  BA DCAE5F00   MOV EDX,jzks.005FAEDC                    ;  pass
    005FAC9D   .  E8 E2A0E0FF   CALL jzks.00404D84
    005FACA2      75 7C         JNZ SHORT jzks.005FAD20                  ;  关键跳
    005FACA4   >  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]


    注册时的验证:
    005EB07C   .  E8 B7FCFFFF   CALL jzks.005EAD38                ;  注册时候验证算法

    此外,软件还有加密和解密注册码算法,如下:
    005FAB15   .  E8 46E6FFFF   CALL jzks.005F9160                ;  启动时解密注册码算法
    005EB1CB   .  E8 10FAFFFF   CALL jzks.005EABE0                       ;  注册成功后加密注册码算法

    进入启动时算法CALl 005F9160
    。。。。。。。。。。。。。
    005F915D   ?  3A5C00 55     CMP BL,BYTE PTR DS:[EAX+EAX+55]
    005F9161  |.  8BEC          MOV EBP,ESP
    005F9163  |.  83C4 D0       ADD ESP,-30
    005F9166  |.  53            PUSH EBX
    005F9167  |.  56            PUSH ESI
    005F9168  |.  57            PUSH EDI
    005F9169  |.  33DB          XOR EBX,EBX
    005F916B  |.  895D D0       MOV DWORD PTR SS:[EBP-30],EBX
    005F916E  |.  895D D8       MOV DWORD PTR SS:[EBP-28],EBX
    005F9171  |.  895D D4       MOV DWORD PTR SS:[EBP-2C],EBX
    005F9174  |.  895D E0       MOV DWORD PTR SS:[EBP-20],EBX
    005F9177  |.  895D DC       MOV DWORD PTR SS:[EBP-24],EBX
    005F917A  |.  895D E8       MOV DWORD PTR SS:[EBP-18],EBX
    005F917D  |.  894D F4       MOV DWORD PTR SS:[EBP-C],ECX
    005F9180  |.  8955 F8       MOV DWORD PTR SS:[EBP-8],EDX             ;  字符串"bigfish1"
    005F9183  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX             ;  注册码
    005F9186  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005F9189  |.  E8 9ABCE0FF   CALL jzks.00404E28
    005F918E  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    005F9191  |.  E8 92BCE0FF   CALL jzks.00404E28
    005F9196  |.  33C0          XOR EAX,EAX
    005F9198  |.  55            PUSH EBP
    005F9199  |.  68 BD925F00   PUSH jzks.005F92BD
    005F919E  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    005F91A1  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    005F91A4  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    005F91A7  |.  E8 8CBAE0FF   CALL jzks.00404C38                       ;  取长度
    005F91AC  |.  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
    005F91AF  |.  837D F0 00    CMP DWORD PTR SS:[EBP-10],0
    005F91B3  |.  75 0D         JNZ SHORT jzks.005F91C2
    005F91B5  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    005F91B8  |.  BA D4925F00   MOV EDX,jzks.005F92D4                    ;  bigfish1
    005F91BD  |.  E8 4EB8E0FF   CALL jzks.00404A10
    005F91C2  |>  33FF          XOR EDI,EDI
    005F91C4  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
    005F91C7  |.  50            PUSH EAX
    005F91C8  |.  B9 02000000   MOV ECX,2
    005F91CD  |.  BA 01000000   MOV EDX,1
    005F91D2  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    005F91D5  |.  E8 BEBCE0FF   CALL jzks.00404E98                       ;  从第1位取注册码2位
    005F91DA  |.  8B4D DC       MOV ECX,DWORD PTR SS:[EBP-24]
    005F91DD  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    005F91E0  |.  BA E8925F00   MOV EDX,jzks.005F92E8                    ;  $
    005F91E5  |.  E8 9ABAE0FF   CALL jzks.00404C84
    005F91EA  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]
    005F91ED  |.  E8 860CE1FF   CALL jzks.00409E78
    005F91F2  |.  8945 EC       MOV DWORD PTR SS:[EBP-14],EAX
    005F91F5  |.  BE 03000000   MOV ESI,3                                ;  ESI=3
    005F91FA  |>  8D45 D4       /LEA EAX,DWORD PTR SS:[EBP-2C]
    005F91FD  |.  50            |PUSH EAX
    005F91FE  |.  B9 02000000   |MOV ECX,2
    005F9203  |.  8BD6          |MOV EDX,ESI
    005F9205  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
    005F9208  |.  E8 8BBCE0FF   |CALL jzks.00404E98                      ;  从第ESI位取注册码2位
    005F920D  |.  8B4D D4       |MOV ECX,DWORD PTR SS:[EBP-2C]
    005F9210  |.  8D45 D8       |LEA EAX,DWORD PTR SS:[EBP-28]
    005F9213  |.  BA E8925F00   |MOV EDX,jzks.005F92E8                   ;  $
    005F9218  |.  E8 67BAE0FF   |CALL jzks.00404C84
    005F921D  |.  8B45 D8       |MOV EAX,DWORD PTR SS:[EBP-28]
    005F9220  |.  E8 530CE1FF   |CALL jzks.00409E78
    005F9225  |.  8945 E4       |MOV DWORD PTR SS:[EBP-1C],EAX
    005F9228  |.  3B7D F0       |CMP EDI,DWORD PTR SS:[EBP-10]
    005F922B  |.  7D 03         |JGE SHORT jzks.005F9230
    005F922D  |.  47            |INC EDI
    005F922E  |.  EB 05         |JMP SHORT jzks.005F9235
    005F9230  |>  BF 01000000   |MOV EDI,1
    005F9235  |>  8B45 F8       |MOV EAX,DWORD PTR SS:[EBP-8]            ;  "bigfish1"
    005F9238  |.  33DB          |XOR EBX,EBX
    005F923A  |.  8A5C38 FF     |MOV BL,BYTE PTR DS:[EAX+EDI-1]          ;  依次取字符串 "bigfish1"的ASCII码值依次送入BL
    005F923E  |.  335D E4       |XOR EBX,DWORD PTR SS:[EBP-1C]           ;  注册码2位与上面的ASCII码值异或
    005F9241  |.  3B5D EC       |CMP EBX,DWORD PTR SS:[EBP-14]           ;  异或值与注册码前两位值进行比较
    005F9244  |.  7F 0B         |JG SHORT jzks.005F9251
    005F9246  |.  81C3 FF000000 |ADD EBX,0FF                             ;  如果小的话,加上0FF
    005F924C  |.  2B5D EC       |SUB EBX,DWORD PTR SS:[EBP-14]           ;  减去前2位的值
    005F924F  |.  EB 03         |JMP SHORT jzks.005F9254
    005F9251  |>  2B5D EC       |SUB EBX,DWORD PTR SS:[EBP-14]           ;  减去注册码前2位的值
    005F9254  |>  8D45 D0       |LEA EAX,DWORD PTR SS:[EBP-30]
    005F9257  |.  8BD3          |MOV EDX,EBX                             ;  差值送入EDX
    005F9259  |.  E8 02B9E0FF   |CALL jzks.00404B60
    005F925E  |.  8B55 D0       |MOV EDX,DWORD PTR SS:[EBP-30]
    005F9261  |.  8D45 E8       |LEA EAX,DWORD PTR SS:[EBP-18]
    005F9264  |.  E8 D7B9E0FF   |CALL jzks.00404C40
    005F9269  |.  8B45 E4       |MOV EAX,DWORD PTR SS:[EBP-1C]
    005F926C  |.  8945 EC       |MOV DWORD PTR SS:[EBP-14],EAX
    005F926F  |.  83C6 02       |ADD ESI,2                               ;  ESI+2
    005F9272  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]            ;  注册码送入EAX
    005F9275  |.  E8 BEB9E0FF   |CALL jzks.00404C38
    005F927A  |.  3BF0          |CMP ESI,EAX
    005F927C  |.^ 0F8C 78FFFFFF \JL jzks.005F91FA
    005F9282  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    005F9285  |.  8B55 E8       MOV EDX,DWORD PTR SS:[EBP-18]
    005F9288  |.  E8 3FB7E0FF   CALL jzks.004049CC
    。。。。。。。。。。。。。。。。。

    算法总结:

    1,取注册码前2位,记为L,变量i初始化为1

    2,从注册码第(i+2)位取2位,记为M

    3,依次取字符串 "bigfish1"的ASCII码值,与M异或

    4,异或值与L进行比较(如果小于L的话,异或值加上加上0FF,再进行下面计算),异或值减去L,结果转换为字符,记为S(i)

    5,令L=M,变量i=i+2

    6,重复2~5的过程,最后把S(i)连接起来,组成一个字符串,记为SZ

    7,机器码与SZ进行比较,如果相同,就注册成功。

    我的机器码:4MT257LQ ,逆算出来一组注册码:1224180B5BF942E609

    下面是我用注册码注册成功的插图
    13.JPG
    重新启动后,打开题库显示如下:
    14.JPG

    如果爆破的话,只需修改
    005FAC80     JNZ jzks.005FAD20
    为:
    005FAC80     JMP  jzks.005FACA4
    就能爆破成功,但是电脑不连网 的话,软件就打不开,希望高手帮忙解决一下,让我这样的菜鸟学习一下?
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2010-7-17 17:50:16 | 显示全部楼层
    看看去。
    向老万同志学习...
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-7-17 18:28:40 | 显示全部楼层
    我太菜了!等高手.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-7-18 13:10:18 | 显示全部楼层
    学习,学习
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-7-18 13:26:53 | 显示全部楼层
    本帖最后由 月之精灵 于 2010-7-18 13:28 编辑

    跟着小吴的后面排队
    说实话,我下载不了文件哈,楼主试下链接看
    想学习都找不着门,哎
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2010-7-18 22:13:26 | 显示全部楼层
    回复 5# 月之精灵


        月老大,我已经修改连接,你试试吧
    PYG19周年生日快乐!
  • TA的每日心情

    2017-6-17 16:59
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-7-19 10:30:56 | 显示全部楼层
    跟着高手学习。。。。
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2017-12-18 18:11
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-7-19 10:53:27 | 显示全部楼层
    对send下断   -->   找检测网络连通的地方
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-7-19 13:12:04 | 显示全部楼层
    分析下网络数据,做个本地验证服务器就行了。
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2010-7-19 21:15:45 | 显示全部楼层
    回复 9# brightsm

    希望高手做个详细的教程,学习一下?
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表