反跟踪:用时间差反跟踪

  概述:

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

  汇编编程举例:

code  segment
    assume  cs:code,ds:code
    org  100h
start:
    jmp  
d1   db  'OK, passed ...',0dh,0ah,24h
:
    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,off d1
      21h
      20h
code  ends
    end  start
Tags:  时间差 如何反跟踪 反跟踪

延伸阅读

最新评论

发表评论