用时间差反跟踪

    技术2022-05-11  48

    概述:

         如果关掉中断,不仅仅是键盘不动了,时钟也不会走,所以可以利用时间差来反跟踪,具体方法是:先关掉中断,,再用当前时间作 key 加密,在执行一大堆指令后,偷偷地再用当前时间解密, 如果为了解密跳过关中断指令, 时间就会变化, 解密结果就会不对,然后...当然是死机啦 !

    汇编编程示例:code    segment        assume    cs:code,ds:code        org    100hstart:        jmp    installd1      db    'OK, passed ...',0dh,0ah,24hinstall:        xor    ax,ax        mov    es,ax        mov    ax,es:[046ch]     ;系统时间计数        xor    word ptr _code,ax     ;把 _CODE 处的指令加密        mov    ah,0ffh        in     al,21h        xchg   ah,al        out    21h,al             ;关掉中断,并保存原中断开关情况到 AH                mov    cx,100             ;这儿是延时语句,模拟其他程序的执行时间lop1:        push   cx        xor    cx,cxlop2:        loop   lop2        pop    cx        loop   lop1                mov    bx,es:[046ch]     ;再把时间取回来解密        xor    word ptr _code,bx          xchg   ah,al             ;记得把中断复原        out    21h,al_code:        nop        nop        mov    ah,9        mov    dx,offset d1        int    21h        int    20hcode    ends        end    start

     


    最新回复(0)