用时间差反跟踪

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

概述:

如果关掉中断,不仅仅是键盘不动了,时钟也不会走,所以可以利用时间差来反跟踪,具体方法是:先关掉中断,,再用当前时间作 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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航