WEB开发网
开发学院网络安全黑客技术 用时间差反跟踪 阅读

用时间差反跟踪

 2007-01-13 20:14:08 来源:WEB开发网   
核心提示:概述:如果关掉中断,不仅仅是键盘不动了,用时间差反跟踪,时钟也不会走,所以可以利用时间差来反跟踪,偷偷地再用当前时间解密, 如果为了解密跳过关中断指令, 时间就会变化, 解密结果就会不对,然后...当然是死机啦 ! 汇编编程示例:codesegmentassumecs:code,ds:codeorg100hstart:

概述:

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

汇编编程示例:

code  segment
    assume  cs:code,ds:code
    org  100h
start:
    jmp  install
d1   db  'OK, passed ...',0dh,0ah,24h
install:
    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,cx
lop2:
    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  20h
code  ends
    end  start

Tags:时间差 跟踪

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接