【技术实现步骤摘要】
一种Windows驱动程序卸载方法及装置
[0001]本专利技术涉及软件卸载
,特别涉及一种Windows驱动程序卸载方法及装置。
技术介绍
[0002]有些Windows驱动程序有自我保护,尤其是一些安全软件或恶意软件的驱动程序,它们为了防止被常规方法恶意卸载,会使用一些阻止驱动卸载的技术,尤其是无法通过停止服务、卸载服务、ZwUnloadDriver等方法卸载驱动程序。部分安全软件或恶意软件如加载驱动程序后,为防止其驱动程序被人轻易的卸载掉,导致软件功能失效,会使用一些驱动防卸载技术。如恶意软件使用驱动防卸载技术,会导致病毒木马无法清理干净,这给系统安全和用户带来很大的隐患。
[0003]现有的驱动卸载方法有停止驱动服务(比如使用sc stop命令)、删除驱动服务(比如使用sc delete命令)、直接调用ZwUnloadDriver函数卸载驱动等方法,但上述方法存在以下缺陷:
[0004]1、方法偏应用层,容易被绕过,比如在安全软件或恶意软件的内核里Hook NtUnloadDriver函数就可以 ...
【技术保护点】
【技术特征摘要】
1.一种Windows驱动程序卸载方法,其特征在于,包括如下步骤:在System进程上下文对待卸载驱动程序进行卸载;获取所述待卸载驱动程序中的驱动卸载函数字段,判断所述驱动卸载函数字段是否为空;如所述驱动卸载函数字段不为空,则在所述System进程上下文里执行所述驱动卸载函数字段中的代码;如所述驱动卸载函数字段为空,则判定所述驱动卸载函数字段中无代码可执行,并跳过执行所述驱动卸载函数代码的步骤;对所述驱动对象执行ObDereferenceObject函数,释放一次所述驱动对象引用计数,当所述对象引用计数变更为预设数值时,释放所述驱动对象,卸载过程结束。2.根据权利要求1所述的Windows驱动程序卸载方法,其特征在于,所述对所述驱动对象执行ObDereferenceObject函数之前,还包括:对所述待卸载驱动程序执行IopCleanupNotifications函数,删除与驱动对象关联的容器会话通知。3.根据权利要求1或2所述的Windows驱动程序卸载方法,其特征在于,所述对所述驱动对象执行ObDereferenceObject函数之前,还包括:对所述待卸载驱动程序执行ObMakeTemporaryObject函数,清理驱动对象占用的系统资源。4.根据权利要求1或2所述的Windows驱动程序卸载方法,其特征在于,所述在System进程上下文对待卸载驱动程序进行卸载,包括:通过系统线程或工作线程在所述System进程上下文对所述待卸载驱动程序进行卸载。5.根据权利要求1或2所述的Windows驱动程序卸载方法,其特征在于,所述预设驱动程序中的所述卸载函数接收的参数包括:驱动对象、驱动名或驱动服务名;当所述参数为所述驱动名或所述驱动服务名时,将所述驱动名或所述驱动服务名转换为所述待卸载驱动程序对应的驱动对象,再基于所述Sys tem进程上下文对所述待卸载驱动程序进行卸载。6.一种win...
【专利技术属性】
技术研发人员:姚纪卫,
申请(专利权)人:安芯网盾北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。