飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7650|回复: 1

[转贴] 一些软件的加密狗破解复制解密全程

[复制链接]
  • TA的每日心情
    开心
    2024-7-16 21:17
  • 签到天数: 51 天

    [LV.5]常住居民I

    发表于 2015-10-3 09:43:14 | 显示全部楼层 |阅读模式
    这是很久以前的软件了,正本破解的时分写下了点东西,今日看到了就顺便把它发上来,由于正本只是做的简略的笔记,今日稍微补偿了点,由于找不到原程序,所以也不是很无缺,期望咱们谅解!

    下面就直接贴代码了:

    0028:CE5AA885  88442405          MOV    [ESP+05],AL      ; 这儿.
    0028:CE5AA889  66C746680100      MOV    WORD PTR [ESI+68],0001
    0028:CE5AA88F  8A442405          MOV    AL,[ESP+05]
    0028:CE5AA893  884615            MOV    [ESI+15],AL
    0028:CE5AA896  884614            MOV    [ESI+14],AL

    咱们是在 chat_to_dongle routine. 而且假定咱们看下面的data有些,咱们看到:SENTINELXXX...
    这是啥啊?! 你应当知道有啥公司供应这种加狗的效能如: Hasp, Sentinel, DesKEY,
    Activator/Unikey 还有许多其它的.

    因此,咱们能够揣度碰到的是一个 SENTINEL 狗加密!咱们如今在 SENTINEL.VXD 文件... 回到文章
    中来,咱们停在这儿:

    0028:CE5AA885  88442405            MOV    [ESP+05],AL  ;  这儿..
    0028:CE5AA889  66C746680100        MOV    WORD PTR [ESI+68],0001
    0028:CE5AA88F  8A442405            MOV    AL,[ESP+05]
    0028:CE5AA893  884615              MOV    [ESI+15],AL
    0028:CE5AA896  884614              MOV    [ESI+14],AL

    咱们要看是对于可实施文件的CALL,所以咱们要按三四次F12,咱们会在这儿:

    0028:CE5B35D6  50            PUSH    EAX
    0028:CE5B35D7  55            PUSH    EBP
    0028:CE5B35D8  57            PUSH    EDI
    0028:CE5B35D9  E8D2FEFFFF    CALL    CE5B34B0    ; 咱们的 call :)
    0028:CE5B35DE  C06C241F01    SHR    BYTE PTR [ESP+1F],01  ;回到这儿.


    在 CALL 中:

    0028:CE5B35D6  50                  PUSH    EAX
    0028:CE5B35D7  55                  PUSH    EBP
    0028:CE5B35D8  57                  PUSH    EDI
    0028:CE5B35D9  E8D2FEFFFF          CALL    CE5B34B0
    0028:CE5B35DE  C06C241F01          SHR    BYTE PTR [ESP+1F],01

    Ok,看看下面的代码并不能帮助咱们啥 :( 我看过几篇对于狗加密的教程.咱们做
    的这几步,应当是现已完成了.我想,在CALL后边,会有一个对于狗的 CMP ,假定值是
    和狗一样,那么就经过,不然就会加上一个过失的旗标...... 可是,咱们是不走运的,
    这儿不是那么简略!的.经过和代码游戏(盯梢call,寻找一些对比的代码),我按许多
    次 F12 ,可是找不到一点好东西!

    BTW,我无从这该死的Sentinel的VXD中出来!按住 F12,可是啥都没有变!VDX使我
    陷入困境了......我期望回到 Acad.exe 文件中!我不期望破解狗硬件,大多数的时分,
    狗保护的缺陷一般都是在方针自身!

    我试了 BPIO -h 378 R
    让咱们在 I/O-port 上试试其它的断点 :

    378  现已试过了
    3BC  这个 ;)
    278  这个也是 ;o)

    OK,作业软件,可是却没有阻挠 ;( 我的天啊!

    由于它是一个 VDX ,所以我也试了 bpx CreateFileA ,可是走不了多久......
    那么,为啥不反汇编它呢?命运好说不定能找到一些在字符串中找到一些对于犯错
    的信息(不要做梦了,那是不可能有的!!:p)如今你能用东西中的啤酒了 ;) 由于咱们
    要花很长时刻去反汇编!!!! 那就是我为啥不必IDA的缘由了! BTW, 咱们的方针可
    实施文件大概是 7.24 mb!好了,如今你知道为啥要花这么多时刻了吧..

    喝过酒后,一觉醒来.

    经过这么长的时刻,总算反汇编好了! 首要,保存效果!咱们不期望再等那么多时刻,不是
    吗?假定你的电脑死机或许其它缘由,你只需再等那么多时刻了!再喝一次酒,呵呵!
    完了吗? Ok!

    咱们愚笨的主见是去找字符串,命运不佳,没有,其实是意料之中 :p 那么让咱们想想!
    咱们如何侵犯它呢? 咱们看看 Import 表吧!看看狗究竟调用了啥函数 :) 咱们能够找
    到一个 "l33t0" API 函数!哈哈,我想会有一些好东西了, 咱们来看看内核......

    太太太好了 :) 我找到一些诙谐的东西了:

    DeviceIoControl

    从没有看过,可是称谓,听起来非常好,不是吗?
    呵呵!去掉一切的断点只在softice中输入: 'bc *' 和: 'BPX DeviceIocontrol'

    如今作业咱们的软件! 哈哈,它阻挠下来了 :) 按F12,咱们跳出了dll文件来到了ACAD.exe
    :) 让咱们和代码游玩吧.......

    先看代码, 我按F12几回直到在一个好方位.下面是来自我的winice.log 的一有些:

    :bl
    00) BPX KERNEL32!DeviceIoControl  // Damn good :)

    Break due to BPX KERNEL32!DeviceIoControl
    Break due to BPX KERNEL32!DeviceIoControl

    // 你在这能够看到我在找到好地方之前被阻挠下来多少次
    // 你用这个 bpx 的时分,你按 F5 3 次,一会有阻挠下来,
    // 你再按两次后停在了这儿 :

    025F:0098B1AF  668B442402      MOV    AX,[ESP+02] ; EAX = 一些值
    025F:0098B1B4  83C404          ADD    ESP,04
    025F:0098B1B7  C20800          RET    0008


    // 经过 RET 后,咱们落在这儿:

    025F:006ABE9A  0FBFC0              MOVSX  EAX,AX  ; 呵呵 :)
    025F:006ABE9D  83F8FF              CMP    EAX,-01  ; EAX = FFFF ?!
    025F:006ABEA0  7405                JZ      006ABEA7 ; 跳转到 6abea7
    025F:006ABEA2  25FFFF0000          AND    EAX,0000FFFF
    025F:006ABEA7  5F                 &nbs, p;POP    EDI
    025F:006ABEA8  C3                  RET    ; 回来 ....

    // 这是最首要的有些 :

    025F:006ABD94  83C404              ADD    ESP,04
    025F:006ABD97  85C0                TEST    EAX,EAX
    025F:006ABD99  7C36                JL      006ABDD1
    025F:006ABD9B  8D44240C            LEA    EAX,[ESP+0C]
    025F:006ABD9F  50                  PUSH    EAX
    025F:006ABDA0  E8DB000000          CALL    006ABE80
    025F:006ABDA5  83C404              ADD    ESP,04


    --------------------------- 8< ---------------------- 截取 :p

    Ok,我首要想到的是改动:

    025F:006ABDCA  3DFDDC0000    CMP    EAX,0000DCFD ; 是 eax= DCFD ?
    025F:006ABDCF  7408          JZ      006ABDD9  ; 好的! 狗锁住了

    变成:

    025F:006ABDCA  3DFDDC0000    CMP  EAX,0000DCFD     
    025F:006ABDCF  EB08          JMP  006ABDD9 ;不论 EAX 了,我跳 :p

    可是,EAX 的值很首要,不然是会溃散的:( 咱们也看到了许多处都调用了 EAX 寄存器
    ,查看了好几回哦!那么,咱们只需暴力使 EAX 的值等于 DCFD 了!

    你还不铲除吗,菜鸟?EAX的值为啥要等于 DCFD?你没看到:CMP EAX,0000DCFD
    吗?先在咱们都了解了吧!

    咱们到哪去修正方针呢?想想啥时分对 AX 赋值的?我收拾一下内存,收拾出下面这段
    代码:

    025F:0098B1AF  668B442402      MOV    AX,[ESP+02] ; EAX = 一些值.
    025F:0098B1B4  83C404          ADD    ESP,04
    025F:0098B1B7  C20800          RET    0008
    025F:0098B1BA  8D9B00000000    LEA    EBX,[EBX+00000000]
    025F:0098B1C0  33C0            XOR    EAX,EAX


    很老的软件了,我想如今网上应当是找不到了,我也没搜到,所以这篇文章有点怪姿态吧,收拾出来也就这姿态了……
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 16:07
  • 签到天数: 1093 天

    [LV.10]以坛为家III

    发表于 2015-10-3 09:53:33 | 显示全部楼层
    你快要被banid了
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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