• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      磁盤(pán)加密文件的零類中斷反跟蹤探究

      2017-03-12 22:55:34
      關(guān)鍵詞:程序段斷點(diǎn)子程序

      李 娜

      (錦州師范高等??茖W(xué)校,遼寧錦州121000)

      一個(gè)應(yīng)用軟件往往由若干個(gè)程序段組成,而每個(gè)程序段又可由若干子程序組成.程序中各種運(yùn)算、判斷、分支轉(zhuǎn)移和循環(huán)過(guò)程很多,在眾多的指令群中,巧妙利用計(jì)算機(jī)系統(tǒng)的一些特殊中斷并隱蔽地調(diào)出,就會(huì)制造跟蹤障礙,達(dá)到防止跟蹤的目的[1].這種反跟蹤方法更隱蔽、更巧妙.如果想要了解程序中到底由哪些特殊中段實(shí)現(xiàn)反跟蹤的,就必須逐條跟蹤程序的運(yùn)行,這就要花費(fèi)大量時(shí)間和精力.因?yàn)樵诟櫟倪^(guò)程中,還要克服大量的抵制單步運(yùn)行的反跟蹤措施,一般會(huì)使跟蹤者喪失信心——計(jì)算機(jī)零類中斷就是運(yùn)用這一原理而產(chǎn)生的[2].

      1 零類中斷原理

      計(jì)算機(jī)系統(tǒng)都設(shè)有一個(gè)零類中斷,即“被零除”產(chǎn)生的中斷,其中斷功能是自動(dòng)完成的.無(wú)論在程序哪個(gè)位置,只要是除法指令且除數(shù)為零,都產(chǎn)生“被零除”的錯(cuò)誤,并由INT 00H中斷處理程序?qū)Υ诉M(jìn)行處理[3、4].因此,如果將某個(gè)加密程序段作為INT 00H 中斷的新的中斷處理程序,并預(yù)先留駐內(nèi)存,要執(zhí)行這段程序時(shí),只需造成一個(gè)被零除的錯(cuò)誤就可以了,而無(wú)需明顯地使用中斷指令或子程序調(diào)用去實(shí)現(xiàn).在跟蹤情況下運(yùn)行程序時(shí),如果沒(méi)有逐條跟蹤到人為設(shè)置好的除法指令,或設(shè)斷點(diǎn)跟蹤時(shí)沒(méi)有將斷點(diǎn)設(shè)置到指令處,就不能發(fā)現(xiàn)一個(gè)程序段在悄悄地進(jìn)行調(diào)用執(zhí)行.設(shè)計(jì)較好的反跟蹤程序,還可以使跟蹤行為得不到除數(shù)為零的結(jié)果,自然也就無(wú)法去跟蹤中斷程序段了.跟蹤者如果不了解秘密執(zhí)行的程序段的運(yùn)行情況,就會(huì)使跟蹤失?。械母櫿咦砸詾閷?duì)程序進(jìn)行了完整的跟蹤,而沒(méi)有發(fā)覺(jué)已經(jīng)失去了對(duì)一段程序的了解.

      2 程序?qū)崿F(xiàn)

      此種方法的程序B1.ASM如下:

      title B1. ASM

      data segment

      char db’program OK!’,0dh,0ah,24h

      disp db’Run INT 00H!’ 0dh,0ah,24h

      oldint dw 0,0

      data ends

      stack segment para stack

      dw 20 dup (?)

      stack ends

      code segment

      assume cs:code,ds:data,ss:stack

      begin:mov ax,data

      mov ds,ax

      mov es,ax

      ……

      push ds

      push es

      cli

      xor ax,ax

      move es,ax

      mov ax,es:[0000h]

      mov oldint,ax

      mov ax,es:[0002h]

      mov oldint +2,ax

      mov ax,seg int00

      mov ds,ax

      mov dx,offset int00

      mov ax,2500h

      int 21h

      sti

      pop es

      pop ds

      ……

      push es

      mov ax,0000h

      mov es,ax

      mov ax,es[0004h]

      mov bx,es[000ch]

      xor bx,ax,

      div bx

      pop es

      ……

      Push es

      cli

      mov ax,0000h

      mov es,ax

      mov ax,oldint

      mov es:[0000h],ax

      mov ax,oldint +2

      mov es:[00002h],ax

      sti

      pop es

      mov dx,offset char

      mov ah,09h

      int 21h

      jmp eeee

      ;……

      int00 proc near

      push dx

      push ax

      push ds

      cli

      mov ax,0000h

      mov es,ax

      mov byte ptr es:[0004h],0cfh

      mov byte ptr es:[000ch],0cfh

      mov dx,seg disp

      mov ds,dx

      mov dx,offset disp

      mov ah,09h

      int 21h

      sti

      pop ds

      pop dx

      pop ax

      pop ax

      add,ax,1

      push ax

      iret

      int00 endp

      ; ……

      eeee: mov ah,4ch

      int 21h

      code ends

      ends begin

      程序中,開(kāi)始設(shè)置了新的零類中斷向量,也就是將INT 00H指向程序中的一個(gè)子程序.在程序執(zhí)行的過(guò)程中,檢測(cè)INT 01H和INT 03H的中斷向量?jī)?nèi)容,并將INT 01H中斷向量與INT 03H中斷向量進(jìn)行“異或”處理.這樣做的目的是:當(dāng)程序正常執(zhí)行時(shí),INT 01H和INT 03H 中斷向量的值是一致的.通過(guò)兩個(gè)數(shù)“異或”處理后得到一個(gè)零值,然后由除法指令DIV產(chǎn)生一個(gè)零類中斷,即INT 00H中斷.當(dāng)程序被調(diào)試軟件跟蹤運(yùn)行時(shí),由于INT 00H和INT 03H的中斷向量不一致,經(jīng)過(guò)“異或”運(yùn)算得到的結(jié)果不可能出現(xiàn)零值,這樣也就產(chǎn)生不了零類中斷,從而也就進(jìn)入不了特定子程序,使跟蹤失?。绦蛟谡_\(yùn)行時(shí)會(huì)顯示“Run INT 00H!”和“Program Ok!”,而在被調(diào)試跟蹤情況下運(yùn)行就只顯示“Program Ok!”.很明顯,程序沒(méi)有執(zhí)行特定的子程序段,用戶可以在特定的子程序中斷安排關(guān)鍵數(shù)據(jù)及指令等內(nèi)容,以防破譯.

      3 結(jié)語(yǔ)

      為了便于理解,本文所給出的程序比較簡(jiǎn)單,而真正的反跟蹤手段要復(fù)雜得多.例如,可以動(dòng)態(tài)解碼過(guò)程得到一系列數(shù)據(jù),由這些數(shù)再循環(huán)運(yùn)算產(chǎn)生被零除的結(jié)果,進(jìn)而產(chǎn)生INT 00H中斷.程序反跟蹤技術(shù)作為磁盤(pán)加密的一個(gè)重要手段,研究其具有實(shí)際意義,因此還需在實(shí)踐中不斷摸索.

      猜你喜歡
      程序段斷點(diǎn)子程序
      基于WinCC的物料小車控制系統(tǒng)設(shè)計(jì)與仿真
      數(shù)控系統(tǒng)手輪回退功能的研究與實(shí)現(xiàn)*
      一類無(wú)限可能問(wèn)題的解法
      基于NC程序段的提高數(shù)控加工監(jiān)控閾值與信號(hào)同步的方法*
      主導(dǎo)電回路發(fā)生斷點(diǎn)故障判斷方法探討
      淺談子程序在數(shù)控車編程中的應(yīng)用
      子程序在數(shù)控車加工槽中的應(yīng)用探索
      西門(mén)子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
      簡(jiǎn)化編程與子程序嵌套的應(yīng)用
      科技傳播(2011年24期)2011-08-29 05:39:46
      TKScope仿真調(diào)試Cortex-M3內(nèi)核的高級(jí)手段
      安宁市| 淮滨县| 綦江县| 南阳市| 辰溪县| 兖州市| 临安市| 巴林右旗| 石楼县| 普兰县| 敦煌市| 金川县| 监利县| 靖江市| 杭锦后旗| 长顺县| 卢龙县| 永吉县| 五原县| 马山县| 利津县| 金川县| 都安| 东莞市| 策勒县| 阿图什市| 常熟市| 温州市| 墨竹工卡县| 桂东县| 秀山| 凤翔县| 工布江达县| 邮箱| 唐海县| 钟祥市| 龙陵县| 临沭县| 铜梁县| 曲周县| 五家渠市|