驱动防int3

最近系统又超级慢,狠心下了新的诺顿病毒库,然后扫了一下C盘,被查出来一个Saga.sys,搜了一下,说是hexer、forgot修改的Telock用来防止int3的驱动。

simonzh2000对此文件的注释:

.586p
.mmx
.model flat, stdcall
option casemap: none
assume fs :flat
HOOKINT   equ  20h
.code
startup:
 nop
 nop
             nop
 nop
 pushfd
 pushad
 push edx
 sgdt  [esp-2]
 pop edx
 mov eax,edx                          ;EDX.EAX->GDT BASE
 mov ecx, 3e8h
 .if dword ptr [eax+ecx+4]!=00cf9a00h ;3e8 ring0 code32
     mov byte ptr [eax],0c3h              ;ret
     mov dword ptr [eax+ecx],0000ffffh
     mov dword ptr [eax+ecx+4],00cf9a00h
    .endif

 push edx
    sidt  [esp-2]
 pop edx
 add edx, HOOKINT*8                       ;edx->int 20h

 .if dword ptr [edx+2]!=0ee0003e8h    ;int 20 gate ->gdt base(ret)
        mov dword ptr[edx+2],0ee0003e8h
        mov [edx],ax
        shr eax, 16
        mov [edx+6], ax
 .endif

 popad
 popfd
 xor eax, eax
 ret 8
 end startup

查了一下说明:

SGDT - Store Global Descriptor Table (286+ privileged)
        Usage:  SGDT    dest
        Modifies flags: none
        Stores the Global Descriptor Table (GDT) Register into the
        specified operand.

SIDT - Store Interrupt Descriptor Table (286+ privileged)
        Usage:  SIDT    dest
        Modifies flags: none
        Stores the Interrupt Descriptor Table (IDT) Register into the
        specified operand.

大体理解了一下意思,具体不懂。现在该学的太多了,都不知道从何下手,郁闷

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值