[发明专利]一种Windows操作系统下钩子的检测方法无效
申请号: | 200910088251.9 | 申请日: | 2009-07-14 |
公开(公告)号: | CN101620658A | 公开(公告)日: | 2010-01-06 |
发明(设计)人: | 陈向群;白光冬;赵霞;郭耀 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F21/22 | 分类号: | G06F21/22 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) | 代理人: | 冯艺东 |
地址: | 100871北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 windows 操作系统 钩子 检测 方法 | ||
1.一种Windows操作系统下钩子的检测方法,包括下列内核级检测方法:
i.对于待检测操作系统,获得系统内核中已加载的所有模块的信息,所述信息包括所述模块加载到内存中的起始地址和终止地址;
ii.获得系统内核中的跳转表的基地址,从而获得所述跳转表;
iii.遍历所述跳转表中的各个表项,对于每个表项,获得所述表项中的地址,并根据步骤i所述的起始地址和终止地址判断所述地址所属的内核模块;
iv.若所述内核模块不是合法的系统模块,则所述地址不合法,则所述待检测操作系统被设置了钩子。
2.如权利要求1所述的检测方法,其特征在于,还包括:
v.通过系统调用号或中断向量号,在提供系统调用或中断处理函数的系统模块中获得正确的系统调用或中断处理函数的入口地址,并用所述入口地址替换所述表项的不合法的地址。
3.如权利要求1或2所述的检测方法,其特征在于,步骤i通过使用系统调用NtQuerySystemInformation获得系统内核中已加载的所有模块的信息。
4.如权利要求1或2所述的检测方法,其特征在于,所述跳转表选自系统服务描述符表,中断描述符表和/或I/O请求包表。
5.如权利要求4所述的检测方法,其特征在于,所述跳转表为系统服务描述符表,步骤ii通过KeServiceDescriptorTable或KeServieDescriptorTableShadow得到所述系统服务描述符表的基地址。
6.如权利要求4所述的检测方法,其特征在于,所述跳转表为中断描述符表,步骤ii通过sidt指令得到所述中断描述符表的基地址。
7.如权利要求4所述的检测方法,其特征在于,所述跳转表为I/O请求包表,步骤ii通过IoGetDeviceObjectPointer函数获得设备的对象指针,然后通过访问该对象的MajorFuction数组获得I/O请求处理函数的地址得到所述I/O请求包表的基地址。
8.如权利要求2所述的检测方法,其特征在于,将步骤iv的检测结果和步骤v的替换结果保存于日志。
9.如权利要求1或2所述的检测方法,其特征在于,还包括下列用户级检测方法:
a)计算标准操作系统的一个或多个设定的系统文件的hash值并储存,若某个系统文件存在多个版本,则分别计算各个版本文件的hash值并储存;
b)计算待检测操作系统的所述系统文件的hash值,若某个系统文件的hash值和对应的步骤a所述一个或多个版本的hash值都不相同,则所述系统文件被设置了钩子,则所述待检测操作系统被设置了钩子。
10.如权利要求9所述的检测方法,其特征在于,所述用户级检测方法还包括:
c)用标准操作系统的相应版本的系统文件替换步骤b所述被设置了钩子的系统文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910088251.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种利用河道地标间接定位识别立体建筑物的方法
- 下一篇:全文检索方法及系统