设为首页 加入收藏

TOP

VC:VxD技术及其在实时反病毒中的应用(二)
2014-11-23 20:01:12 来源: 作者: 【 】 浏览:54
Tags:VxD 技术 及其 实时 病毒 应用
ookFunction的Hooker函数。通过安装自己的Hooker函数,就可以截获系统内所有对文件IO的API调用,并适时对相关文件进行病毒检查,从而实现实时监控。

 ----上述过程由用户VxD调用系统VxDIFSMgr提供的服务完成,该VxD提供了丰富的底层文件操作功能:IFSMgr_InstallSyatemApiHook函数用来安装FileSystemApiHookFunction,IFSMgr_RemoveSystemApiHook用来卸除Hooker,IFSMgr_Ring0_FileIO用来对文件和磁盘扇区进行读写访问等等。当由IFSManager转入SystemApiHookFunction时,带有6个参数:

FileSystemApiHookFunction(
pIFSFuncFSDFnAddr,
对应FSD服务函数地址
intFunctionNum,
与API对应的FSD服务功能号(详见下面)
intDrive,
驱动器代号(1=A,2=B,3=C...)
intResourceFlags,
资源标志(详见下面)
intCodePage,
代码页(0=ANSI,1=OEM)
pioreqpir
指向IOREQ结构的指针
)

 ----参数中比较重要的是FSD功能号、驱动器号和IOREQ结构指针3项。如需截获某个文件IOAPI调用,只需在Hooker中对相应FSD功能号进行处理

 ----系统中可挂接多个Hooker,形成一条链。IFSMgr_InstallFileSystemApiHook安装Hooker成功时返回前一个Hooker地址,每个Hooker在做特定处理后总应调用前一个Hooker,最后安装的Hooker最先被调用。在VxD中调用其他VxD服务采用INT20h指令后跟一个双字的特殊格式,其中高字为被调用VxD的ID号(系统VxD的ID固定),低字为该VxD之服务号,这一形式称为VxDcall,如:

int20h
dd00400043h
;VxDCallIFSMgr_InstallSystemApiHook
int20h
dd00400044h
;VxDCallIFSMgr_RemoveSystemApiHook

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC++编程技巧 下一篇VC++中的一个不足及其改善方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: