CN106203114A - 一种应用程序的防护方法、装置及电子设备 - Google Patents
一种应用程序的防护方法、装置及电子设备 Download PDFInfo
- Publication number
- CN106203114A CN106203114A CN201610537834.5A CN201610537834A CN106203114A CN 106203114 A CN106203114 A CN 106203114A CN 201610537834 A CN201610537834 A CN 201610537834A CN 106203114 A CN106203114 A CN 106203114A
- Authority
- CN
- China
- Prior art keywords
- device object
- operational order
- volume device
- application program
- volume
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Stored Programmes (AREA)
Abstract
本发明的实施例公开一种应用程序的防护方法、装置和电子设备,涉及计算机安全技术领域,为有效避免恶意程序通过卸载卷设备的方式将该应用程序恶意删除而设计。所述应用程序的防护方法,包括:拦截发送给文件系统卷设备对象的操作指令;确定所述操作指令是否为卷设备对象的卸载指令;如果是,确定所述操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象;如果是,拒绝所述操作指令的访问。本发明适用于杀毒软件等安全类软件工具。
Description
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种应用程序的防护方法、装置及电子设备。
背景技术
随着互联网技术的蓬勃发展,病毒、木马等恶意程序技术相应地层出不穷。为了有效保证计算机系统和数据安全,目前,用户通常会在计算机中安装杀毒类应用程序(即杀毒软件),从而对病毒、木马等恶意程序进行拦截、查杀、预警等处理,从而有效避免病毒、木马等恶意程序对于计算机安全的强大威胁。
恶意程序为了能够顺利在计算机系统中运行而不被杀毒软件发现,通常都会针对杀毒软件进行特定的技术性处理,从而躲避杀毒软件的拦截和查杀。个别恶意程序会向杀毒软件所在的卷设备发送卸载指令,从而将杀毒软件所在的卷设备的盘符直接从计算机系统中恶意删除,例如,杀毒软件安装在D盘中,恶意程序可以将D盘从计算机系统中删除,即相当于把杀毒软件的所有文件全部删除,从而达到破坏杀毒软件的目的。这样一来,没有了杀毒软件的拦截和查杀,恶意程序就可以在计算机系统中畅通无阻的运行,对计算机系统和数据进行破坏。
因此,如何防止恶意程序通过卸载卷设备的方式将杀毒软件等应用程序恶意删除是一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种应用程序的防护方法、装置及电子设备,能够有效避免恶意程序通过卸载卷设备的方式将该应用程序恶意删除。
第一方面,本发明实施例提供一种应用程序的防护方法,所述方法包括:
拦截发送给文件系统卷设备对象的操作指令;
确定所述操作指令是否为卷设备对象的卸载指令;
如果是,确定所述操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象;
如果是,拒绝所述操作指令的访问。
结合第一方面,在第一方面的第一种实施方式中,所述拦截发送给文件系统卷设备对象的操作指令包括:
获取操作系统中全部的文件系统卷设备对象;
与所述全部的文件系统卷设备对象建立绑定关系,从而拦截发送给各所述文件系统卷设备对象的操作指令。
结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述获取操作系统中全部的文件系统卷设备对象包括:
调用内核函数IoEnumerateDeviceObjectList枚举操作系统中全部的文件系统卷设备对象,从而获取操作系统中全部的文件系统卷设备对象;
所述与所述全部的文件系统卷设备对象建立绑定关系包括:
调用内核函数IoAttachDeviceToDeviceStack与所述获取的全部文件系统卷设备对象建立绑定关系。
结合第一方面,在第一方面的第三种实施方式中,所述确定所述操作指令是否为卷设备对象的卸载指令包括:
获取所述操作指令对应的IO栈数据信息;
根据所述IO栈数据信息,确定所述操作指令是否为卷设备对象的卸载指令;
所述确定所述操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象包括:
根据所述IO栈数据信息,确定所述操作指令指示卸载的卷设备对象标识;
获取所述应用程序所在的卷设备对象标识;
当所述确定的的卷设备对象标识和所述获取的卷设备对象标识相同时,确定所述操作指令指示卸载的卷设备对象为所述应用程序所在的卷设备对象。
结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述获取所述操作指令对应的IO栈数据信息包括:
调用内核函数IoGetCurrentIrpStackLocation获取所述操作指令对应的IO栈数据信息
所述根据所述IO栈数据信息,确定所述操作指令是否为卷设备对象的卸载指令包括:
在所述IO栈数据信息的MinorFunction字段值为IRP_MN_USER_FS_REQUEST且所述IO栈数据信息的Parameters.FileSystemControl.FsControlCode字段值为FSCTL_DISMOUNT_VOLUME时,确定所述操作指令为卷设备对象的卸载指令。
结合第一方面的第三种实施方式,在第一方面的第五种实施方式中,所述获取所述应用程序所在的卷设备对象标识包括:
读取所述应用程序的注册表键值,根据所述注册表键值,获取所述应用程序所在的卷设备对象标识。
结合第一方面,在第一方面的第六种实施方式中,所述拒绝所述操作指令的访问包括:
将所述操作指令对应的IO栈数据信息中的返回状态字段值设置为拒绝访问STATUS_ACCESS_DENIED。
结合第一方面或第一方面的第一至第六种实施方式中的任一种实施方式,在第一方面的第七种实施方式中,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
第二方面,本发明实施例提供一种应用程序的防护装置,包括:
拦截单元,用于拦截发送给文件系统卷设备对象的操作指令;
第一确定单元,用于确定所述操作指令是否为卷设备对象的卸载指令;
第二确定单元,用于如果所述第一确定单元确定所述操作指令为卷设备对象的卸载指令,确定所述操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象;
处理单元,用于如果所述第二确定单元确定所述操作指令指示卸载的卷设备对象为所述应用程序所在的卷设备对象,拒绝所述操作指令的访问。
结合第二方面,在第二方面的第一种实施方式中,所述拦截单元包括:
获取模块,用于获取操作系统中全部的文件系统卷设备对象;
绑定模块,用于与所述全部的文件系统卷设备对象建立绑定关系,从而拦截发送给各所述文件系统卷设备对象的操作指令。
结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述获取模块用于:调用内核函数IoEnumerateDeviceObjectList枚举操作系统中全部的文件系统卷设备对象,从而获取操作系统中全部的文件系统卷设备对象;
所述绑定模块用于:调用内核函数IoAttachDeviceToDeviceStack与所述获取的全部文件系统卷设备对象建立绑定关系。
结合第二方面,在第二方面的第三种实施方式中,所述第一确定单元包括:
栈数据获取模块,用于获取所述操作指令对应的IO栈数据信息;
确定模块,用于根据所述IO栈数据信息,确定所述操作指令是否为卷设备对象的卸载指令;
所述第二确定单元包括:
第一确定模块,用于根据所述IO栈数据信息,确定所述操作指令指示卸载的卷设备对象标识;
标识获取模块,用于获取所述应用程序所在的卷设备对象标识;
第二确定模块,用于当所述确定的的卷设备对象标识和所述获取的卷设备对象标识相同时,确定所述操作指令指示卸载的卷设备对象为所述应用程序所在的卷设备对象。
结合第二方面的第三种实施方式,所述栈数据获取模块用于:
调用内核函数IoGetCurrentIrpStackLocation获取所述操作指令对应的IO栈数据信息
所述确定模块用于:
在所述IO栈数据信息的MinorFunction字段值为IRP_MN_USER_FS_REQUEST且所述IO栈数据信息的Parameters.FileSystemControl.FsControlCode字段值为FSCTL_DISMOUNT_VOLUME时,确定所述操作指令为卷设备对象的卸载指令。
结合第二方面的第三种实施方式,在第二方面的第五种实施方式中,所述标识获取模块用于:
读取所述应用程序的注册表键值,根据所述注册表键值,获取所述应用程序所在的卷设备对象标识。
结合第二方面,在第二方面的第六种实施方式中,所述处理单元用于:
将所述操作指令对应的IO栈数据信息中的返回状态字段值设置为拒绝访问STATUS_ACCESS_DENIED。
结合第二方面或第二方面的第一至第六种实施方式中的任一种实施方式,在第二方面的第七种实施方式中,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施方式所述的应用程序的防护方法。
本发明实施例提供的一种应用程序的防护方法、装置及电子设备,拦截发送给文件系统卷设备对象的操作指令,并在操作指令为针对该应用程序所在的卷设备对象的卸载指令时,拒绝操作指令的访问,从而能够有效避免恶意程序通过卸载卷设备的方式将该应用程序恶意删除。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例的应用程序的防护方法的流程示意图;
图2为本发明的应用程序的防护装置的一个实施例的结构示意图;
图3为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
首先对本发明中所言的卷设备对象进行简要说明。卷是windows文件系统上的概念,简单的理解就是硬盘上的存储区域,比如,一个C盘为一个卷,也称卷设备,每个卷设备都被分配有标识,一般称为盘符,例如“C”就是C盘这个卷设备的标识,即盘符。
图1为本发明的实施例的应用程序的防护方法的流程示意图,如图1所示,本实施例的应用程序的防护方法可以包括:
步骤101,拦截发送给文件系统卷设备对象的操作指令。
本发明实施例中,可选的,可预先获取操作系统中全部即所有的文件系统卷设备对象的清单,然后,根据该清单与全部的卷设备对象建立绑定关系。绑定的意义在于,能够对这些卷设备对象进行监听,接收操作系统中发送给这些卷设备对象的各种操作指令,例如挂载券指令、卸载券指令、读取券大小指令,读取文件数量指令等等,即在操作指令到达卷设备对象之前,进行拦截过滤处理。
具体的,可以调用内核函数IoEnumerateDeviceObjectList枚举操作系统中全部的文件系统卷设备对象,从而获取操作系统中全部的文件系统卷设备对象清单,然后,调用内核函数IoAttachDeviceToDeviceStack绑定到所有文件系统卷设备对象上,即与获取的全部文件系统卷设备对象建立绑定关系。
步骤102,确定操作指令是否为卷设备对象的卸载指令。
如果是,执行步骤103,如果否,执行步骤104。
本步骤中,具体的,可获取操作指令对应的IO(输入/输出,Input/Output)栈数据信息,根据IO栈数据信息,确定操作指令是否为卷设备对象的卸载指令,即卸载券指令。
操作指令对应的IO栈数据信息中,包含有MinorFunction字段,该字段值指示了该操作指令是用户模式的IO请求还是内核模式的IO请求,具体的,当该字段值为RP_MN_USER_FS_REQUEST,代表是用户模式的请求数据。而IO栈数据信息中还包含有Parameters.FileSystemControl.FsControlCode字段,该字段值明确了该操作指令的具体含义,例如,当该字段值为FSCTL_DISMOUNT_VOLUME时,表示该操作指令为卸载券指令。
操作系统中任意软件,包括恶意程序所发送的操作指令均为用户模式,因此,本步骤中,可结合IO栈数据信息中的MinorFunction字段的值和Parameters.FileSystemControl.FsControlCode字段的值,来确定操作指令是否为卷设备对象的卸载指令。具体的,在IO栈数据信息的MinorFunction字段值为IRP_MN_USER_FS_REQUEST且IO栈数据信息的Parameters.FileSystemControl.FsControlCode字段值为FSCTL_DISMOUNT_VOLUME时,确定操作指令为卷设备对象的卸载指令。
步骤103,确定操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象。
如果是,执行步骤105,如果否,执行步骤104。
该操作指令为卸载券指令,该操作指令的IO栈数据信息中明确指示了该指令所针对的卷设备对象,即卸载(删除)哪个卷设备对象,例如卸载D盘,因此,本步骤中,可根据该操作指令的IO栈数据信息确定该操作指令指示卸载的卷设备对象的标识,即盘符。
而应用程序所在的卷设备对象即应用程序安装在的卷设备对象,例如,软件A安装在D盘,则软件A所在的卷设备对象为D盘。可以从该应用程序的注册表键值中读取出应用程序所在的卷设备对象的标识,即盘符。
这样,如果根据该操作指令的IO栈数据信息确定的、该操作指令指示卸载的卷设备对象标识和从该应用程序的注册表键值中读取出应用程序所在的卷设备对象的标识相同,即可确定操作指令指示卸载的卷设备对象为应用程序所在的卷设备对象。
当然可以理解的是,还可以有多种获取到应用程序所在的卷设备对象的标识的方式,本发明对此不做限定,本领域技术人员可以合理选择。
步骤104、解除拦截,使该操作指令正常执行。
步骤105,拒绝操作指令的访问。
在经过前述步骤101-103确定该操作指令为指示卸载应用程序所在的卷设备对象的指令时,则拒绝该操作指令的访问,使得该操作指令不会执行到应用程序所在的卷设备对象,该卷设备对象不会被卸载,进而使得该应用程序也不会被通过卸载卷设备的方式恶意删除,有效保护了该应用程序的安全。
具体的,该操作指令的IO栈数据中,一个状态Status字段为返回状态字段,本步骤中,可将该字段值设置为拒绝访问STATUS_ACCESS_DENIED,进一步完成本次操作指令的IO请求,这样,该操作指令就不会执行到应用程序所在的卷设备对象。
本发明实施例提供的应用程序的防护方法,拦截发送给文件系统卷设备对象的操作指令,并在操作指令为针对该应用程序所在的卷设备对象的卸载指令时,拒绝操作指令的访问,从而能够有效避免恶意程序通过卸载卷设备的方式将该应用程序恶意删除。
需要说明的是,一般来讲,恶意程序会针对杀毒软件等具有恶意程序查杀功能的安全类应用程序,以卸载卷的方式将该安全类应用程序恶意删除,因此,本发明实施例可应用对安全类应用程序的防护中,也可应用在安全类应用程序中,对这种卸载券行为进行防控。当然,可以理解的是,本发明实施例不限于安全类应用程序,适用于对任何一种应用程序进行有效防护,避免恶意程序通过卸载卷设备的方式将该应用程序恶意删除。
下面采用一个具体的实施例,对图1所示方法实施例的技术方案进行详细说明:
本实施例,假设需要防护的应用程序为名称为“毒霸”的杀毒软件。
本实施例的防护方法流程如下:
首先,调用内核函数IoEnumerateDeviceObjectList枚举操作系统中所有的文件系统卷设备对象清单,然后调用内核函数IoAttachDeviceToDeviceStack绑定到操作系统的所有文件系统卷设备对象上。
绑定后,将在操作系统中所有软件向文件系统卷设备发送的各种操作指令执行到卷设备对象之前,对这些操作指令进行拦截过滤。常见的操作指令例如有挂载卷指令,卸载卷指令,读取卷大小指令,读取文件数量等等,操作指令实质上就是IO请求。
操作指令实质上就是IO请求,即一次指令发送,相当于一次IO请求,一旦拦截到向卷设备对象发送的操作指令,即触发如下流程:
调用IoGetCurrentIrpStackLocation获取当前请求的IO栈数据信息。
IO栈数据信息中包含有一个这是指令的特征之一,如果此值为IRP_MN_USER_FS_REQUEST,代表是用户模式的请求数据。IO栈数据信息中还包含有Parameters.FileSystemControl.FsControlCode字段,如果该字段值为FSCTL_DISMOUNT_VOLUME,说明是卸载卷指令。
操作系统中的软件发送的操作指令为用户模式,则可结合上述两个字段进行判断,首先根据MinorFunction字段判断所拦截的操作指令是否是用户模式,若是,根据Parameters.FileSystemControl.FsControlCode字段判断是否是卸载券指令,若是,则进一步判断所要卸载的券设备对象是否是“毒霸”所在的券设备对象。
可以取到想要卸载的卷设备对象对应的盘符,如C:、D:这样的盘符,假设获取到的盘符为D:,然后再查询“毒霸”安装的注册表位置,读取HKEY_LOCAL_MACHINE\SOFTWARE\kingsoft\antivirus下的ProgramPath注册表键值,获取如这样的数据:D:\programfiles\kingsoft\kingsoft antivirus\,取前两个字符,D:,和上面的获取卸载卷设备对象的盘符做匹配,相同就可认为在卸载“毒霸”所在的卷设备对象。,
经过上述过程,即可确定有软件在卸载“毒霸”所在的卷设备对象,这样就可以定义为恶意软件在卸载了,因为正常软件一般是不会这么暴力卸载卷设备对象的。
在操作指令的IO栈中,一个状态Status字段是返回状态。在确定有软件在卸载“毒霸”所在的卷设备对象后,把值设为STATUS_ACCESS_DENIED(拒绝访问),然后调用IoCompleteRequest完成这个操作指令的IO请求,即这里已经把IO请求完成了,此IO请求就不会接着执行到文件系统卷设备对象上了,该卷设备对象不会被卸载,进而使得“毒霸”也不会被通过卸载卷设备的方式恶意删除,有效保护了“毒霸”的安全。
与前述方法实施例相对应,本发明实施例还提供了一种应用程序的防护装置,如图2所示,本实施例的防护装置可以包括:
拦截单元10,用于拦截发送给文件系统卷设备对象的操作指令;
第一确定单元11,用于确定所述操作指令是否为卷设备对象的卸载指令;
第二确定单元12,用于如果第一确定单元11确定所述操作指令为卷设备对象的卸载指令,确定所述操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象;
处理单元13,用于如果第二确定单元12确定所述操作指令指示卸载的卷设备对象为所述应用程序所在的卷设备对象,拒绝所述操作指令的访问。
本发明实施例提供的应用程序的防护装置,拦截发送给文件系统卷设备对象的操作指令,并在操作指令为针对该应用程序所在的卷设备对象的卸载指令时,拒绝操作指令的访问,从而能够有效避免恶意程序通过卸载卷设备的方式将该应用程序恶意删除。
可选的,在本发明的一个实施例中,拦截单元10包括:
获取模块,用于获取操作系统中全部的文件系统卷设备对象;
绑定模块,用于与所述全部的文件系统卷设备对象建立绑定关系,从而拦截发送给各所述文件系统卷设备对象的操作指令。
进一步的,在本发明的一个实施例中:
所述获取模块用于:调用内核函数IoEnumerateDeviceObjectList枚举操作系统中全部的文件系统卷设备对象,从而获取操作系统中全部的文件系统卷设备对象;
所述绑定模块用于:调用内核函数IoAttachDeviceToDeviceStack与所述获取的全部文件系统卷设备对象建立绑定关系。
可选的,在本发明的一个实施例中,第一确定单元11包括:
栈数据获取模块,用于获取所述操作指令对应的IO栈数据信息;
确定模块,用于根据所述IO栈数据信息,确定所述操作指令是否为卷设备对象的卸载指令;
第二确定单元12包括:
第一确定模块,用于根据所述IO栈数据信息,确定所述操作指令指示卸载的卷设备对象标识;
标识获取模块,用于获取所述应用程序所在的卷设备对象标识;
第二确定模块,用于当所述确定的的卷设备对象标识和所述获取的卷设备对象标识相同时,确定所述操作指令指示卸载的卷设备对象为所述应用程序所在的卷设备对象。
进一步的,在本发明的一个实施例中:
所述栈数据获取模块用于:
调用内核函数IoGetCurrentIrpStackLocation获取所述操作指令对应的IO栈数据信息
所述确定模块用于:
在所述IO栈数据信息的MinorFunction字段值为IRP_MN_USER_FS_REQUEST且所述IO栈数据信息的Parameters.FileSystemControl.FsControlCode字段值为FSCTL_DISMOUNT_VOLUME时,确定所述操作指令为卷设备对象的卸载指令。
可选的,在本发明的一个实施例中,所述标识获取模块用于:
读取所述应用程序的注册表键值,根据所述注册表键值,获取所述应用程序所在的卷设备对象标识。
可选的,在本发明的一个实施例中,处理单元13用于:
将所述操作指令对应的IO栈数据信息中的返回状态字段值设置为拒绝访问STATUS_ACCESS_DENIED。
可选的,在本发明的一个实施例中,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图3为本发明电子设备一个实施例的结构示意图,可以实现本发明图1所示实施例的流程,如图3所示,上述电子设备可以包括:壳体31、处理器32、存储器33、电路板34和电源电路35,其中,电路板34安置在壳体31围成的空间内部,处理器32和存储器33设置在电路板34上;电源电路35,用于为上述电子设备的各个电路或器件供电;存储器33用于存储可执行程序代码;处理器32通过读取存储器33中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的应用程序的防护方法。
处理器32对上述步骤的具体执行过程以及处理器32通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、应用程序的提供器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种应用程序的防护方法,其特征在于,所述方法包括:
拦截发送给文件系统卷设备对象的操作指令;
确定所述操作指令是否为卷设备对象的卸载指令;
如果是,确定所述操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象;
如果是,拒绝所述操作指令的访问。
2.根据权利要求1所述的方法,其特征在于,所述拦截发送给文件系统卷设备对象的操作指令包括:
获取操作系统中全部的文件系统卷设备对象;
与所述全部的文件系统卷设备对象建立绑定关系,从而拦截发送给各所述文件系统卷设备对象的操作指令。
3.根据权利要求2所述的方法,其特征在于,
所述获取操作系统中全部的文件系统卷设备对象包括:
调用内核函数IoEnumerateDeviceObjectList枚举操作系统中全部的文件系统卷设备对象,从而获取操作系统中全部的文件系统卷设备对象;
所述与所述全部的文件系统卷设备对象建立绑定关系包括:
调用内核函数IoAttachDeviceToDeviceStack与所述获取的全部文件系统卷设备对象建立绑定关系。
4.根据权利要求1所述的方法,其特征在于,所述确定所述操作指令是否为卷设备对象的卸载指令包括:
获取所述操作指令对应的IO栈数据信息;
根据所述IO栈数据信息,确定所述操作指令是否为卷设备对象的卸载指令;
所述确定所述操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象包括:
根据所述IO栈数据信息,确定所述操作指令指示卸载的卷设备对象标识;
获取所述应用程序所在的卷设备对象标识;
当所述确定的的卷设备对象标识和所述获取的卷设备对象标识相同时,确定所述操作指令指示卸载的卷设备对象为所述应用程序所在的卷设备对象。
5.根据权利要求4所述的方法,其特征在于,
所述获取所述操作指令对应的IO栈数据信息包括:
调用内核函数IoGetCurrentIrpStackLocation获取所述操作指令对应的IO栈数据信息;
所述根据所述IO栈数据信息,确定所述操作指令是否为卷设备对象的卸载指令包括:
在所述IO栈数据信息的MinorFunction字段值为IRP_MN_USER_FS_REQUEST且所述IO栈数据信息的Parameters.FileSystemControl.FsControlCode字段值为FSCTL_DISMOUNT_VOLUME时,确定所述操作指令为卷设备对象的卸载指令。
6.根据权利要求4所述的方法,其特征在于,所述获取所述应用程序所在的卷设备对象标识包括:
读取所述应用程序的注册表键值,根据所述注册表键值,获取所述应用程序所在的卷设备对象标识。
7.根据权利要求1所述的方法,其特征在于,所述拒绝所述操作指令的访问包括:
将所述操作指令对应的IO栈数据信息中的返回状态字段值设置为拒绝访问STATUS_ACCESS_DENIED。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
9.一种应用程序的防护装置,其特征在于,包括:
拦截单元,用于拦截发送给文件系统卷设备对象的操作指令;
第一确定单元,用于确定所述操作指令是否为卷设备对象的卸载指令;
第二确定单元,用于如果所述第一确定单元确定所述操作指令为卷设备对象的卸载指令,确定所述操作指令指示卸载的卷设备对象是否为所述应用程序所在的卷设备对象;
处理单元,用于如果所述第二确定单元确定所述操作指令指示卸载的卷设备对象为所述应用程序所在的卷设备对象,拒绝所述操作指令的访问。
10.根据权利要求8所述的装置,其特征在于,所述拦截单元包括:
获取模块,用于获取操作系统中全部的文件系统卷设备对象;
绑定模块,用于与所述全部的文件系统卷设备对象建立绑定关系,从而拦截发送给各所述文件系统卷设备对象的操作指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610537834.5A CN106203114A (zh) | 2016-07-08 | 2016-07-08 | 一种应用程序的防护方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610537834.5A CN106203114A (zh) | 2016-07-08 | 2016-07-08 | 一种应用程序的防护方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106203114A true CN106203114A (zh) | 2016-12-07 |
Family
ID=57472945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610537834.5A Pending CN106203114A (zh) | 2016-07-08 | 2016-07-08 | 一种应用程序的防护方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106203114A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443040A (zh) * | 2019-08-13 | 2019-11-12 | 杭州安恒信息技术股份有限公司 | 一种基于文件过滤驱动框架的文件实时捕获方法和装置 |
CN111274620A (zh) * | 2020-01-16 | 2020-06-12 | 四川效率源科技有限责任公司 | 一种基于Windows操作系统的USB设备的管控方法 |
CN115168300A (zh) * | 2022-09-05 | 2022-10-11 | 山东正中信息技术股份有限公司 | 一种基于文件系统过滤的便携式移动工作方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1766855A (zh) * | 2004-10-27 | 2006-05-03 | 大众电脑股份有限公司 | 用于窗口操作系统的保护储存装置方法 |
CN102243636A (zh) * | 2010-05-13 | 2011-11-16 | 深圳市朗科科技股份有限公司 | 存储待保护文件信息、保护文件的方法及装置 |
-
2016
- 2016-07-08 CN CN201610537834.5A patent/CN106203114A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1766855A (zh) * | 2004-10-27 | 2006-05-03 | 大众电脑股份有限公司 | 用于窗口操作系统的保护储存装置方法 |
CN102243636A (zh) * | 2010-05-13 | 2011-11-16 | 深圳市朗科科技股份有限公司 | 存储待保护文件信息、保护文件的方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443040A (zh) * | 2019-08-13 | 2019-11-12 | 杭州安恒信息技术股份有限公司 | 一种基于文件过滤驱动框架的文件实时捕获方法和装置 |
CN110443040B (zh) * | 2019-08-13 | 2021-08-20 | 杭州安恒信息技术股份有限公司 | 一种基于文件过滤驱动框架的文件实时捕获方法和装置 |
CN111274620A (zh) * | 2020-01-16 | 2020-06-12 | 四川效率源科技有限责任公司 | 一种基于Windows操作系统的USB设备的管控方法 |
CN115168300A (zh) * | 2022-09-05 | 2022-10-11 | 山东正中信息技术股份有限公司 | 一种基于文件系统过滤的便携式移动工作方法及系统 |
CN115168300B (zh) * | 2022-09-05 | 2022-12-09 | 山东正中信息技术股份有限公司 | 一种基于文件系统过滤的便携式移动工作方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3029593B1 (en) | System and method of limiting the operation of trusted applications in the presence of suspicious programs | |
DE60223648T2 (de) | Gerät zur Verhinderung der Benuztzung einer Mobilstation | |
CN108683652A (zh) | 一种基于行为权限的处理网络攻击行为的方法及装置 | |
CN106169047A (zh) | 一种监控摄像头打开的方法、装置及电子设备 | |
CN104680084A (zh) | 计算机中保护用户隐私的方法和系统 | |
CN106203092A (zh) | 一种拦截恶意程序关机的方法、装置及电子设备 | |
CN105844146B (zh) | 一种保护驱动程序的方法、装置及电子设备 | |
CN106127031A (zh) | 一种保护进程的方法、装置及电子设备 | |
CN106201468A (zh) | 一种截屏的处理方法、装置及电子设备 | |
CN109800571B (zh) | 事件处理方法和装置、以及存储介质和电子装置 | |
EP3198505B1 (en) | Cross-view malware detection | |
CN106203114A (zh) | 一种应用程序的防护方法、装置及电子设备 | |
CN104598400A (zh) | 一种外设管理的方法、装置及系统 | |
CN105893847A (zh) | 一种保护安全防护应用程序文件的方法、装置及电子设备 | |
CN106250244A (zh) | 一种释放互斥锁的方法、装置及电子设备 | |
CN106126291A (zh) | 一种删除恶意文件的方法、装置及电子设备 | |
CN106022117A (zh) | 防止系统环境变量修改的方法、装置及电子设备 | |
CN106203069A (zh) | 一种动态链接库文件的拦截方法、装置及终端设备 | |
CN107368738B (zh) | 一种智能设备的防Root方法及装置 | |
CN106203119A (zh) | 隐藏光标的处理方法、装置及电子设备 | |
CN111030982B (zh) | 一种针对涉密文件的强管控方法、系统及存储介质 | |
CN106127051A (zh) | 一种防止鼠标被恶意捕获的方法、装置及电子设备 | |
CN106022111B (zh) | 隐藏弹出式窗口的处理方法、装置及电子设备 | |
CN105653988A (zh) | 一种外部存储设备读写权限控制方法、装置及终端设备 | |
Mwambe | Syntactic and Semantic Extensions of Malicious Activity Diagrams to Support ISSRM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190117 Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |