• <rt id="imqiw"></rt>
  • <rt id="imqiw"><acronym id="imqiw"></acronym></rt>
    
    
  • 經(jīng)典案例

    聯(lián)系方式

    公司名稱:昆山華航電子有限公司
    公司電話:0512-50139595
    公司郵箱:eric@kshuahang.com
    公司地址:江蘇省昆山市善浦西路

    您當(dāng)前的位置:首頁(yè) > 技術(shù)資源 > 芯片解密

    軟件狗[Dongles]的加密與解密技術(shù)(4)

    軟件狗[Dongles]的加密與解密技術(shù)(4)

    五、一個(gè)簡(jiǎn)單的例子

    這里我們一起看一下經(jīng)BITSHELL加密后的程序的情況。
    采用一個(gè)極簡(jiǎn)單的例子,用DEBUG生成一個(gè) TEST.COM文件:

    C:/>DEBUG
    -A
    876B:0100 MOV AL,0
    876B:1012 MOV DX,260
    876B:0105 OUT DX,AL
    876B:0106 INT 20
    8760:0108
    -RCX
    CX 0000
    :8
    -N TEST.COM
    -W
    Writing 00008 bytes
    -Q

    用BITSHELL對(duì)TEST.COM進(jìn)行加密:

    C:/>BITSHELL TEST.COM
    BITSHELL(tm)Version 2.01
    Copyrighe(c) 1989-1995 by Yellow Rose SoftWare Workgroup

    Scheme 6 (CodeKey shift repeated)

    9K
    Total encryption size is 9K

    Encryption completed successfully.

    再用DEBUG來(lái)看一下加密后的TEST.COM:

    C:/DEBUT TEST.COM
    -R
    AX=0000 BX=0000 CX=4CBC DX=0000 SP=00C0 BP=0000 SI=0000 DI=0000
    DS=877C ES=877C SS=878C CS=878C IP=021C NV UP EI PL NZ NA PO NC
    878C:021C FA CLI
    -U
    878C:021C FA CLI
    878C:021D 8CCC MOV SP,CS
    878C:021F 8ED4 MOV SS,SP
    878C:0221 BC4D25 MOV SP,254D
    878C:0224 9C PUSHF
    878C:0225 51 PUSH CX
    878C:0226 52 PUSH DX


    878C:0227 56 PUSH SI
    878C:0228 57 PUSH DI
    878C:0229 55 PUSH BP
    878C:022A 0E PUSH CS
    878C:022B 1F POP DS
    878C:022C 2E CS:
    878C:022D 8C061000 MOV[0010],ES
    878C:0231 2E CS:
    878C:0232 C606480080 MOV BYTE PTR [0048],80
    878C:0237 0E PUSH CS
    878C:0238 07 POP ES
    878C:0239 BEAD24 MOV SI,24AD
    -U


    ...... ......


    -Q

    可以看到經(jīng)加密后TEST.COM文件變長(zhǎng)了很多,這是因?yàn)樵诔绦蛲饷婕恿艘粚油鈿ぁM瑫r(shí),您也發(fā)現(xiàn)了加密后的程序沒法反編譯;如果您再跟蹤一下,您又會(huì)發(fā)現(xiàn)加密后的程序已經(jīng)無(wú)法跟蹤了。如果您手頭有Turbo Debugger或Soft-ICE等等,它們也是無(wú)效的。

    看起來(lái),這是一個(gè)比較好的加密工具,尤其是它提供的函數(shù)可以嵌入源代碼中,跟軟件狗配合起來(lái),達(dá)到內(nèi)外結(jié)合的加密效果,大家不妨一試。 |||||
    ==================================================

    雖然加密方法那么多,但是道高一尺,魔高一丈,隨著加密技術(shù)的發(fā)展,解密技術(shù)也進(jìn)一步蓬勃發(fā)展起來(lái),目前可用于解密的工具有SOURCE、DEBUG、SYMDEB、TURBO DEBUG、SOFT-ICE、TRW2000等等。這些工具的功能一個(gè)比一個(gè)強(qiáng),更何況還有那么多“專業(yè)”解密高手,似乎任何加密技術(shù)到了他們手里都會(huì)迎刃而解。說(shuō)來(lái)說(shuō)去,您可能會(huì)想,你仍然沒有最終解決軟件的加密問(wèn)題嗎。是的,本來(lái)嗎,加密和解密就是一對(duì)矛盾的統(tǒng)一體,某一階段的優(yōu) 只能看是哪一方先亮出了新招,誰(shuí)都不敢說(shuō)他的加密方法別人破譯不了,或者說(shuō)他能破譯任何加密方法。如此看來(lái),我們所做的工作只在于盡量減少被解密的可能性,以贏得時(shí)間進(jìn)行下一步的開發(fā)。

    軟件解密就是要想辦法把加密代碼攻破,具體到軟件狗上,即是找到檢查程序,然后干掉它。因此,如果我們?cè)趹?yīng)用程序的不同地方多做幾次檢查,就可以讓解密者浪費(fèi)更多的時(shí)間。這對(duì)I/O速率很快的軟件狗來(lái)說(shuō)是很方便的,不像軟盤加密那樣檢查起來(lái)既費(fèi)時(shí)又不方便。

    一個(gè)好的程序員會(huì)把程序設(shè)計(jì)得簡(jiǎn)單易懂,具有結(jié)構(gòu)化,但這也給解密者帶來(lái)了方便,所以程序不要寫得太規(guī)則,另外還要加上一些“廢話”,以干擾解密者。

    另外一種不破壞程序結(jié)構(gòu)化,也不需要寫“廢話”就可以有效干擾解密者,提高解密難度和復(fù)雜性的方法是,把子程序全部用宏改寫。這樣匯編出的程序是一串串很難看出結(jié)構(gòu)的指令,進(jìn)出堆棧的數(shù)據(jù)和各種傳遞的參數(shù)以及積存器暫存數(shù)的存取相距很遠(yuǎn),嵌套很深,分析起來(lái)很傷腦筋。第三代軟件狗的存取程序就是全部用這種方法寫的。

    很多軟件加密技術(shù)的研制者對(duì)Soft-ICE很頭疼,因?yàn)樗慕饷芄δ芴珡?qiáng)了,但是您只要在程序中調(diào)用一下INT 7,就能防止它的跟蹤,您不妨試試看。

    在用解密工具跟蹤程序時(shí),執(zhí)行時(shí)間顯然要比平常的長(zhǎng),另外一般都用鍵盤來(lái)操作,用顯示器或打印機(jī)作輸出,所以采用執(zhí)行時(shí)間檢查或者在關(guān)鍵程序部分禁止鍵盤中斷,以及禁止顯示器或打印機(jī)輸出(修改INT 10H 或INT 17H 中斷)等都是較好的方法。例如在第三代軟件狗編程中用到的方法:


    ...... ......
    ...... ......
    ;................MACRO.....................
    ;. 計(jì)時(shí)反跟蹤 .
    ;..........................................
    ;-----------------------------------------[+]
    ;保存時(shí)間
    ;-----------------------------------------[+]
    TimeSave macro
    ifndef debug-Time
    push ds
    push cs:[_const_word_0_]
    pop ds ;ds=0000H
    push ds:[046ch] ;把時(shí)鐘記數(shù)值
    pop cs:start_time ;保存到start_time
    pop ds
    endif
    endm

    ;-----------------------------------------[+]
    ;檢查程序執(zhí)行時(shí)間,超過(guò)5秒則主機(jī)被掛起
    ;-----------------------------------------[+]
    TimeTest macro
    ifndef debug_Time
    push es
    push ax
    push cs:{_const_word_0_]
    pop es ;es=0000H
    mov ax,es:[46ch] ;得到新的時(shí)間記數(shù)值
    sub ax,cs:start_time;
    cmp ax,18*5 ;執(zhí)行時(shí)間超過(guò)5秒嗎?
    ja $+4 ;是,則主機(jī)被掛起
    pop ax
    pop es
    endif
    endm

    ;..................MACRO...................
    ;. 鍵盤反跟蹤 .
    ;..........................................

    ;-----------------------------------------[+]
    ;禁止鍵盤中斷
    ;-----------------------------------------[+]
    KbdOff macro
    ifndef debug-Kbd
    mov cs:_tmpB_,al ;保存al
    mov al,02h ;禁止鍵盤中斷
    out 21h,al
    mov al,cs:_tmpB_ ;恢復(fù)al
    endif
    endm

    ;-----------------------------------------[+]

    ;檢查鍵盤中斷,若被開放則主機(jī)被掛起
    ;-----------------------------------------[+]
    KbdTest_jmp macro
    ifndef debug_Kbd
    push ax
    in al,21h
    test al,02h ;鍵盤中斷被開放?
    jz $+3 ;是是,則掛起
    pop ax
    endif
    endm

    ...... ......
    ...... ......

    另外,如果我們把關(guān)鍵部分的程序加以編碼,運(yùn)行時(shí)再譯碼出來(lái),這也增加了解密的難度,因?yàn)榻饷苷弑仨毝镁幋a、譯碼規(guī)則才能修改可執(zhí)行文件,而這些規(guī)則加密者一般是不會(huì)泄露的。

    多種軟件加密方法的綜合,以及幾種加密技術(shù)交叉使用,足以讓許多解密者知難而退。因?yàn)楸仨毩私馑械募用芗夹g(shù)原理才有可能解密,這就增加了難度,畢竟能夠精通各種加密方法的人不多。例如有就把軟件狗加密技術(shù)和磁盤加密技術(shù)結(jié)合起來(lái)做。


    上一篇:軟件狗[Dongles]的加密與解密技術(shù)(3)
    下一篇軟件狗[Dongles]的加密與解密技術(shù)(5)
    溫馨提示:
    凡在本公司進(jìn)行電路板克隆業(yè)務(wù)的客戶,必須有合法的PCB設(shè)計(jì)版權(quán)來(lái)源聲明,以保護(hù)原創(chuàng)PCB設(shè)計(jì)版權(quán)所有者的合法權(quán)益;
    【 字體: 】【打印此頁(yè)】 【返回】【頂部】【關(guān)閉

    [軟件狗[Dongles]的加密與解密技術(shù)(4)]^相關(guān)文章


    主站蜘蛛池模板: 天天操天天摸天天干| 波多野结衣的av一区二区三区| 天天做天天爱夜夜爽| 亚洲国产日韩a在线播放| 野花影院在线直播视频| 奇米影视中文字幕| 亚洲AV无码无在线观看红杏| 精品视频一区二区三区在线观看| 国产自产视频在线观看香蕉| 久久久国产乱子伦精品| 狠狠色婷婷丁香六月| 国产开嫩苞实拍在线播放视频| 一本精品99久久精品77| 欧美va天堂在线电影| 午夜免费福利在线| 可以免费看黄的网站| 性色a∨精品高清在线观看| 午夜福利一区二区三区高清视频| 69国产成人精品午夜福中文| 无遮挡无删动漫肉在线观看| 亚洲欧美日韩天堂在线观看| 2020狠狠操| 成人永久福利免费观看| 亚洲人成色7777在线观看不卡 | 无码人妻精品一区二区三区夜夜嗨 | 亚洲av一本岛在线播放| 精品日产一区二区三区| 国产精品一卡二卡三卡| 一本之道在线视频| 最刺激黄a大片免费观看下截| 免费在线黄色网| 韩国日本一区二区| 成人无号精品一区二区三区| 亚洲乳大丰满中文字幕| 精品久久久久久无码中文野结衣| 国产男靠女免费视频网站| t66y最新地址一地址二地址三 | 中文字幕在线免费看线人| 欧美姓爱第一页| 免费人成在线观看播放国产| 香蕉久久夜色精品国产尤物|