一种保护安全防护应用程序文件的方法、装置及电子设备的制造方法

文档序号:10535285阅读:238来源:国知局
一种保护安全防护应用程序文件的方法、装置及电子设备的制造方法
【专利摘要】本发明的实施例公开一种保护安全防护应用程序文件的方法、装置及电子设备,涉及信息安全技术。包括:在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住该函数;依据键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取键值设置内核函数中的键值名参数;如果注册表路径为会话管理注册表路径,且提取的键值名参数为重命名操作键值,提取键值设置内核函数中的待删除文件路径参数;如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。本发明适用于对安全安全防护应用程序文件进行保护。
【专利说明】
一种保护安全防护应用程序文件的方法、装置及电子设备
技术领域
[0001]本发明涉及信息安全技术,尤其涉及一种保护安全防护应用程序文件的方法、装置及电子设备。
【背景技术】
[0002]随着计算机通信以及互联网技术的不断发展,电子设备的应用越来越普遍,例如,智能移动电话、个人数字助理、掌上电脑、笔记本电脑得到了越来越广泛的应用,电子设备中安装的应用程序(APP,AppliCat1n)也越来越多,使得操作系统被一些应用程序攻击的可能性也越来越大。为了保障操作系统的安全,在Windows操作系统中,一般安装有使用内核驱动层对操作系统的各应用程序中的文件进行安全防护的安全防护应用程序,例如,金山毒霸应用程序,用以对可能导致操作系统安全隐患的一些应用程序的访问进行阻止,可以有效提升操作系统的安全性。其中,
[0003]安全防护应用程序防护操作系统安全的首要条件是确保自身文件的完整性,即在操作系统运行过程中,需要确保自身的文件免受一些其他应用程序的攻击而导致的特定文件(例如,病毒防护文件、病毒查杀文件等)不可用,从而失去对操作系统的安全防护。现有保护安全防护应用程序文件的方法,在操作系统启动成功后,当有其他应用程序向操作系统发起对安全防护应用程序文件的操作请求时,例如,请求对安全防护应用程序文件进行读、写、删除、重命名等操作时,利用微软提供的文件系统过滤驱动框架捕获并拦截操作请求,判断操作请求对应的文件路径是否为预先设置的安全防护应用程序文件映射的目录,如果是且操作为删除或写操作时,向操作系统返回拒绝状态,拒绝对安全防护应用程序文件的操作请求,从而实现相关文件的保护。
[0004]但该保护安全防护应用程序文件的方法,在操作系统进行初始化的过程中,例如,操作系统重启过程中,由于安全防护应用程序还未完成相应的初始化,因而,未能启动相应的安全防护功能,如果其他应用程序在操作系统初始化过程中对安全防护应用程序文件进行恶意攻击,例如,删除或卸载安全防护应用程序中的特定应用功能对应的驱动安全防护应用程序文件,将导致安全防护应用程序在完成初始化后,相应特定功能未能启动,从而失去对操作系统进行安全防护的功能,使得电子设备操作系统的安全性较低。

【发明内容】

[0005]有鉴于此,本发明实施例提供一种保护安全防护应用程序文件的方法、装置及电子设备,能够提升安全防护应用程序文件在操作系统初始化过程中的安全性,以解决现有的保护安全防护应用程序文件的方法不能在操作系统初始化过程中进行安全保护的问题。
[0006]第一方面,本发明实施例提供一种保护安全防护应用程序文件的方法,包括:
[0007]在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数;
[0008]依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数;
[0009]如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数;
[0010]如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。
[0011]结合第一方面,在第一方面的第一种实施方式中,所述在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数包括:
[0012]预先注入的钩子函数监测到移动操作内核函数被调用;
[0013]监测所述移动操作内核函数被写入预先设置的移动操作参数;
[0014]监测写入移动操作参数的移动操作内核函数调用所述键值设置内核函数;
[0015]监测所述写入移动操作参数的移动操作内核函数将所述移动操作参数写入调用的所述键值设置内核函数;
[0016]钩住所述写入移动操作参数的所述键值设置内核函数。
[0017]结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述钩住所述写入移动操作参数的所述键值设置内核函数时,将所述移动操作参数写入所述钩子函数中;
[0018]所述依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数包括:
[0019]依据所述钩子函数中的注册表路径句柄参数获取注册表路径,提取所述钩子函数中的键值名参数。
[0020]结合第一方面,在第一方面的第三种实施方式中,所述键值设置内核函数为NtSetValueKey 内核函数。
[0021]结合第一方面、第一方面的第一种至第三种中的任一实施方式,在第一方面的第四种实施方式中,在所述如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同之后,拒绝所述键值设置内核函数写注册表的操作之前,所述方法还包括:
[0022]获取调用所述键值设置内核函数的进程路径;
[0023]如果所述进程路径对应的应用程序与预先设置的应用程序库中任一应用程序不相同,执行所述拒绝所述键值设置内核函数写注册表的操作的步骤。
[0024]结合第一方面的第四种实施方式,在第一方面的第五种实施方式中,所述获取调用所述键值设置内核函数的进程路径包括:
[0025]调用操作系统的当前进程获取内核函数以及系统信息查询内核函数,依据所述当前进程获取内核函数以及系统信息查询内核函数获取所述进程路径。
[0026]结合第一方面的第五种实施方式,在第一方面的第六种实施方式中,所述方法还包括:
[0027]如果所述进程路径对应的应用程序与预先设置的安全防护应用程序库中任一安全防护应用程序相同,解除对所述键值设置内核函数的钩住。
[0028]结合第一方面、第一方面的第一种至第三种中的任一实施方式,在第一方面的第七种实施方式中,所述方法还包括:
[0029]如果所述注册表路径不为预先设置的会话管理注册表路径,或提取的键值名参数不为预先设置的重命名操作键值,或提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录不相同,解除对所述键值设置内核函数的钩住。
[0030]第二方面,本发明实施例提供一种保护安全防护应用程序文件的装置,包括:钩子监测模块、键值名提取模块、文件路径获取模块以及文件处理模块,其中,
[0031]钩子监测模块,用于在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数;
[0032]键值名提取模块,用于依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数;
[0033]文件路径获取模块,如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数;
[0034]文件处理模块,如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。
[0035]结合第二方面,在第二方面的第一种实施方式中,所述钩子监测模块包括:第一调用监测单元、第一写入监测单元、第二调用监测单元、第二写入监测单元以及第一钩子单元,其中,
[0036]第一调用监测单元,用于利用预先注入的钩子函数监测到移动操作内核函数被调用;
[0037]第一写入监测单元,用于监测所述移动操作内核函数被写入移动操作参数;
[0038]第二调用监测单元,用于监测写入移动操作参数的移动操作内核函数调用所述键值设置内核函数;
[0039]第二写入监测单元,用于监测所述写入移动操作参数的移动操作内核函数将所述移动操作参数写入调用的所述键值设置内核函数;
[0040]第一钩子单元,用于钩住所述写入移动操作参数的所述键值设置内核函数。
[0041]结合第二方面,在第二方面的第二种实施方式中,所述第一钩子单元还用于在钩住所述写入移动操作参数的所述键值设置内核函数时,将所述移动操作参数写入所述钩子函数中;
[0042]所述键值名提取模块,还用于依据所述钩子函数中的注册表路径句柄参数获取注册表路径,提取所述钩子函数中的键值名参数。
[0043]结合第二方面,在第二方面的第三种实施方式中,所述键值设置内核函数为NtSetValueKey 内核函数。
[0044]结合第二方面、第二方面的第一种至第三种中的任一实施方式,在第二方面的第四种实施方式中,所述文件处理模块包括:第一判断单元、进程路径获取单元、第二判断单元以及拦截单元,其中,
[0045]第一判断单元,如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,通知进程路径获取单元;
[0046]进程路径获取单元,用于获取调用所述键值设置内核函数的进程路径;
[0047]第二判断单元,如果所述进程路径对应的应用程序与预先设置的应用程序库中任一应用程序不相同,通知拦截单元;
[0048]拦截单元,用于拒绝所述键值设置内核函数写注册表的操作。
[0049]结合第二方面的第四种实施方式,在第二方面的第五种实施方式中,所述进程路径获取单元包括:调用子单元以及进程路径获取子单元,其中,
[0050]调用子单元,用于调用操作系统的当前进程获取内核函数以及系统信息查询内核函数;
[0051]进程路径获取子单元,用于依据所述当前进程获取内核函数以及系统信息查询内核函数获取所述进程路径。
[0052]结合第二方面的第五种实施方式,在第二方面的第六种实施方式中,所述文件处理模块还包括:拦截解除单元,
[0053]所述第二判断单元,还用于如果所述进程路径对应的应用程序与预先设置的安全防护应用程序库中任一安全防护应用程序相同,通知拦截解除单元;
[0054]拦截解除单元,用于解除对所述键值设置内核函数的钩住。
[0055]结合第二方面、第二方面的第一种至第三种中的任一实施方式,在第二方面的第七种实施方式中,所述文件路径获取模块还用于如果所述注册表路径不为预先设置的会话管理注册表路径,或提取的键值名参数不为预先设置的重命名操作键值,解除对所述键值设置内核函数的钩住;所述文件处理模块还用于如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录不相同,解除对所述键值设置内核函数的钩住。
[0050]第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的保护安全防护应用程序文件的方法。
[0057]本发明实施例提供的一种保护安全防护应用程序文件的方法、装置及电子设备,通过在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数;依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数;如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数;如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。能够提升安全防护应用程序文件在操作系统初始化过程中的安全性,以解决现有的保护安全防护应用程序文件的方法不能在操作系统初始化过程中进行安全保护的问题。
【附图说明】
[0058]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0059]图1为本发明的实施例一保护安全防护应用程序文件的方法流程示意图;
[0060]图2为本发明的实施例二保护安全防护应用程序文件的方法流程示意图;
[0061]图3为本发明的实施例三保护安全防护应用程序文件的装置结构示意图;
[0062]图4为本发明电子设备一个实施例的结构不意图。
【具体实施方式】
[0063]下面结合附图对本发明实施例进行详细描述。
[0064]应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0065]实施例一
[0066]图1为本发明的实施例一保护安全防护应用程序文件的方法流程示意图,如图1所示,本实施例的方法可以包括:
[0067]步骤101,在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数;
[0068]本实施例中,通过统计分析以及挖掘,在操作系统初始化的过程中,如果某一应用程序删除或卸载安全防护应用程序文件,是通过调用应用层的移动操作内核函数,即MoveFi IeEx内核函数,MoveFi IeEx内核函数再调用键值设置内核函数来实现。其中,MoveFileEx内核函数包含有多个移动操作参数,例如,待删除文件所在的注册表路径句柄参数(fiIepath)、键值名参数(NULL)、表明在重启(初始化)后执行删除功能的重启(初始化)后删除或卸载参数(MOVEFI LE_DELAY_UNT I L_REB00T)以及待删除文件路径参数等。
[0069I MoveF i IeEx内核函数在调用键值设置内核函数后,将注册表路径句柄参数以及键值名参数等移动操作参数写入调用的键值设置内核函数中,以使键值设置内核函数依据写入的移动操作参数,对注册表执行相应写入操作,从而使得操作系统在初始化到该注册表时,依据该注册表中写入的移动操作参数执行相应操作,例如,依据待删除文件路径参数删除相应的文件。
[0070]作为一可选实施例,所述钩子函数包含的参数与所述键值设置内核函数包含的参数相同。
[0071]作为一可选实施例,所述在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数包括:
[0072]All,预先注入的钩子函数监测到移动操作内核函数被调用;
[0073]A12,监测所述移动操作内核函数被写入移动操作参数;
[0074]A13,监测写入移动操作参数的移动操作内核函数调用所述键值设置内核函数;
[0075]A14,监测所述写入移动操作参数的移动操作内核函数将所述移动操作参数写入调用的所述键值设置内核函数;
[0076]A15,钩住所述写入移动操作参数的所述键值设置内核函数。
[0077]本实施例中,作为一可选实施例,键值设置内核函数为NtSetValueKey内核函数。
[0078]本实施例中,钩子函数可以设置为与NtSetValueKey内核函数相同,与NtSetValueKey内核函数不同的是,增加了本发明实施例的后续步骤处理程序代码段。
[0079]作为另一可选实施例,所述钩住所述写入移动操作参数的所述键值设置内核函数时,将所述移动操作参数写入所述钩子函数中;
[0080]所述依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数包括:
[0081]依据所述钩子函数中的注册表路径句柄参数获取注册表路径,提取所述钩子函数中的键值名参数。
[0082]本实施例中,通过在内核层中挂钩NtSetValueKey内核函数,当操作系统中任意应用程序在初始化过程中发起对安全防护应用程序文件的攻击时,在内核层中都会调用MoveFi IeEx内核函数,然后,通过MoveFi IeEx内核函数调用NtSetVaIueKey内核函数,NtSetValueKey内核函数再执行写入注册表键值的操作。这样,在内核层的系统服务描述符表(SSDT,System Services Descriptor Table)中,通过注入的方法钩住NtSetValueKey内核函数,可以实现对NtSetValueKey内核函数写入注册表键值的操作拦截,如果写入注册表键值的操作为其他应用程序在初始化过程中发起的对安全防护应用程序文件的攻击操作,则拒绝(拦截)写入注册表键值的操作,钩子函数退出,不通知NtSetValueKey内核函数执行写入注册表键值的操作,使得注册表键值写入失败;如果写入注册表键值的操作不为其他应用程序在初始化过程中发起的对安全防护应用程序文件的攻击操作,则返回状态为允许,允许写入注册表键值的操作,钩子函数通知或调用NtSetValueKey内核函数,执行写入注册表键值的操作。
[0083]步骤102,依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数;
[0084]步骤103,如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数;
[0085]本实施例中,在钩子函数的处理逻辑中,第一参数为当前打开的键值的注册表路径句柄参数,通过对注册表路径句柄参数进行相应转换,可以得到会话管理注册表路径,第二参数为键值名参数。
[0086]本实施例中,作为一可选实施例,会话管理注册表路径可以为:HKEY_L0 CAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sess1n Manager;
[0087]重命名操作键值为:PendingFiIeRenameOperat1ns o
[0088]本实施例中,作为一可选实施例,如果钩子函数中写入有移动操作参数,则可以直接依据钩子函数中的注册表路径句柄参数获取注册表路径,提取键值名参数,以及,提取待删除文件路径参数,即依据钩子函数中的注册表路径句柄参数获取注册表路径,提取钩子函数中的键值名参数;如果钩子函数中未写入有移动操作参数,则依据键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取键值设置内核函数中的键值名参数。本发明实施例对此不作限定。
[0089]本实施例中,作为一可选实施例,该方法还可以包括:
[0090]如果所述注册表路径不为预先设置的会话管理注册表路径,或提取的键值名参数不为预先设置的重命名操作键值,解除对所述键值设置内核函数的钩住。
[0091 ]本实施例中,如果所述注册表路径不为预先设置的会话管理注册表路径,或提取的键值名参数不为预先设置的重命名操作键值,通知键值设置内核函数按照现有流程进行处理,从而解除对所述键值设置内核函数的拦截,允许键值设置内核函数对注册表执行写入操作。
[0092]步骤104,如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。
[0093]本实施例中,通过判断从钩子函数中提取的待删除文件路径参数,该待删除文件路径参数用于在注册表中写入待删除文件路径,如果该待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,表明其他应用程序试图删除或卸载安全防护应用程序文件。
[0094]本实施例中,安全防护应用程序文件目录库可依据需要进行安全防护的安全防护应用程序文件,查询相应的注册表,获取安全防护应用程序文件目录,写入安全防护应用程序文件目录库中。也可通过相关技术人员在网络服务器通过对各安全防护应用程序文件的分析,在注册表中获取记录的安全防护应用程序文件目录,形成安全防护应用程序文件目录库,并将形成的安全防护应用程序文件目录库下发至各电子设备,电子设备接收网络服务器下发的安全防护应用程序文件目录库进行保存。
[0095]本实施例中,在拒绝所述键值设置内核函数写注册表的操作后,可以有效拦截NtSetValueKey内核函数将移动操作参数(待删除文件路径参数)写入注册表路径句柄参数对应的注册表路径下的键值名参数中,即将待删除文件的文件路径信息写入注册表键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sess1n Manager的PendingFiIeRenameOperat1ns键值下,使得操作系统在重启时,操作系统进程可以通过读取PendingFi IeRenameOperat1ns键值下的文件路径信息,依据读取的文件路径信息逐一删除对应的文件。这样,基于重启时删除文件的实现是需要将相关文件路径信息写在特定注册表下,本实施例的方法,通过拦截注册表下PendingFi IeRenameOperat1ns键值写入安全防护应用程序文件的文件路径信息,可以拦截特定注册表键的写入,实现安全防护应用程序文件的保护,使得其在操作系统初始化(重启)的过程中不被删除。
[0096]本实施例中,作为一可选实施例,该方法还可以包括:
[0097]如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录不相同,解除对所述键值设置内核函数的钩住。
[0098]本发明保护安全防护应用程序文件的方法,通过在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数;依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数;如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数;如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。这样,在操作系统初始化过程中,如果应用层的MoveFi IeEx函数被调用从而进行文件删除设置,通过对MoveFi IeEx内核函数调用NtSetValueKey内核函数写注册表键值时进行拦截,可以避免在操作系统初始化过程中安全防护应用程序被恶意攻击,从源头上更好地杜绝恶意行为,实现了文件重启删除的一种拦截方法,有利于保护安全防护应用程序文件的安全性,完整性,增强操作系统的安全性。
[0099]实施例二
[0100]图2为本发明的实施例二保护安全防护应用程序文件的方法流程示意图,如图2所示,本实施例的方法可以包括:
[0101]步骤201,在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数;
[0102]步骤202,依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数;
[0103]步骤203,如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数;
[0104]本实施例中,步骤201至步骤203的过程分别和上述方法实施例一的步骤101至步骤103类似,此处不再赘述。
[0105]步骤204,如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,获取调用所述键值设置内核函数的进程路径;
[0106]步骤205,如果所述进程路径对应的应用程序与预先设置的安全防护应用程序库中任一安全防护应用程序不相同,拒绝所述键值设置内核函数写注册表的操作。
[0107]本实施例中,由于安全防护应用程序在升级或更新时,可能需要执行注册表键值的写入操作,并不是任意的应用程序(包括安全防护应用程序以及非安全防护应用程序)对应的进程在进行写重启删除都需要拦截,因而,在提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同的情况下,可以进一步对调用键值设置内核函数的进程路径对应的应用程序进行判断,如果进程路径对应的应用程序为一预先设置的安全防护应用程序,表明是安全防护应用程序调用键值设置内核函数以执行注册表键值写入,可以允许键值设置内核函数的写入操作。
[0108]本实施例中,作为一可选实施例,获取调用所述键值设置内核函数的进程路径包括:
[0?09]调用操作系统的当前进程获取(PsGetCurrentProces)内核函数以及系统信息查询(ZwQuerySystemInformat1n)内核函数,依据所述PsGetCurrentProces内核函数以及ZwQuerySystemInformat 1n内核函数获取所述进程路径。
[0110]本实施例中,例如,如果进程路径对应的应用程序为毒霸目录下的一应用程序,说明是毒霸目录下的进程在调用MoveFileEx函数进行写重启删除,钩子函数允许该操作,并调用或通知NtSetValueKey内核函数,使得操作系统在初始化过程中完成文件删除的操作。
[0111]本实施例中,作为一可选实施例,该方法还可以包括:
[0112]如果所述进程路径对应的应用程序与预先设置的安全防护应用程序库中任一安全防护应用程序相同,解除对所述键值设置内核函数的钩住。
[0113]本发明保护安全防护应用程序文件的方法,通过获取调用所述键值设置内核函数的进程路径,如果所述进程路径对应的应用程序与预先设置的安全防护应用程序库中任一安全防护应用程序不相同,拒绝所述键值设置内核函数写注册表的操作。这样,可以有效避免安全防护应用程序在更新以及升级时需要对注册表键值进行写入时,被钩子函数拦截的情形,不影响安全防护应用程序对注册表键值的写入操作。
[0114]实施例三
[0115]图3为本发明的实施例三保护安全防护应用程序文件的装置结构示意图,如图3所示,本实施例的装置可以包括:钩子监测模块31、键值名提取模块32、文件路径获取模块33以及文件处理模块34,其中,
[0116]钩子监测模块31,用于在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数;
[0117]键值名提取模块32,用于依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数;
[0118]文件路径获取模块33,如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数;
[0119]文件处理模块34,如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。
[0120]本实施例中,作为一可选实施例,所述键值设置内核函数为NtSetValueKey内核函数。通过调用应用层的MoveFileEx内核函数,MoveFileEx内核函数再调用键值设置内核函数,将注册表路径句柄参数以及键值名参数等移动操作参数写入调用的键值设置内核函数中,以使键值设置内核函数依据写入的移动操作参数,对注册表执行相应写入操作,从而使得操作系统在初始化到该注册表时,依据该注册表中写入的待删除文件路径参数删除相应的文件,从而实现删除或卸载安全防护应用程序文件。
[0121 ]本实施例中,作为一可选实施例,钩子监测模块31包括:第一调用监测单元、第一写入监测单元、第二调用监测单元、第二写入监测单元以及第一钩子单元(图中未示出),其中,
[0122]第一调用监测单元,用于利用预先注入的钩子函数监测到移动操作内核函数被调用;
[0123]第一写入监测单元,用于监测所述移动操作内核函数被写入移动操作参数;
[0124]第二调用监测单元,用于监测写入移动操作参数的移动操作内核函数调用所述键值设置内核函数;
[0125]第二写入监测单元,用于监测所述写入移动操作参数的移动操作内核函数将所述移动操作参数写入调用的所述键值设置内核函数;
[0126]第一钩子单元,用于钩住所述写入移动操作参数的所述键值设置内核函数。
[0127]本实施例中,各单元完成的功能都由钩子函数完成。
[0128]本实施例中,第一钩子单元还用于在钩住所述写入移动操作参数的所述键值设置内核函数时,将所述移动操作参数写入所述钩子函数中;
[0129]键值名提取模块32,还用于依据所述钩子函数中的注册表路径句柄参数获取注册表路径,提取所述钩子函数中的键值名参数。
[0130]本实施例中,作为一可选实施例,文件路径获取模块33还用于如果所述注册表路径不为预先设置的会话管理注册表路径,或提取的键值名参数不为预先设置的重命名操作键值,解除对所述键值设置内核函数的钩住。
[0131]本实施例中,作为一可选实施例,会话管理注册表路径可以为:HKEY_L0CAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sess1nManager;
[0132]重命名操作键值为:PendingFiIeRenameOperat1ns ο
[0133]本实施例中,作为一可选实施例,文件处理模块34还用于如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录不相同,解除对所述键值设置内核函数的钩住。
[0134]本实施例中,作为一可选实施例,文件处理模块34包括:第一判断单元、进程路径获取单元、第二判断单元以及拦截单元(图中未示出),其中,
[0135]第一判断单元,如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,通知进程路径获取单元;
[0136]进程路径获取单元,用于获取调用所述键值设置内核函数的进程路径;
[0137]第二判断单元,如果所述进程路径对应的应用程序与预先设置的应用程序库中任一应用程序不相同,通知拦截单元;
[0138]本实施例中,在提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同的情况下,再对调用键值设置内核函数的进程路径对应的应用程序进行判断,如果进程路径对应的应用程序为一预先设置的应用程序,表明是该应用程序调用键值设置内核函数以执行注册表键值写入,可以允许键值设置内核函数的写入操作。
[0139]拦截单元,用于拒绝所述键值设置内核函数写注册表的操作。
[0140]本实施例中,作为一可选实施例,文件处理模块34还包括:拦截解除单元,
[0141]第二判断单元,还用于如果所述进程路径对应的应用程序与预先设置的安全防护应用程序库中任一安全防护应用程序相同,通知拦截解除单元;
[0142]拦截解除单元,用于解除对所述键值设置内核函数的钩住。
[0143]本实施例中,作为一可选实施例,进程路径获取单元包括:调用子单元以及进程路径获取子单元,其中,
[0144]调用子单元,用于调用操作系统的当前进程获取内核函数以及系统信息查询内核函数;
[ΟΙ45] 本实施例中,作为一可选实施例,当前进程获取内核函数为PsGetCurrentProces内核函数,系统信息查询内核函数为ZwQuerySy stemlnf ormat i on内核函数。例如,如果进程路径对应的应用程序为毒霸目录下的一应用程序,说明是毒霸目录下的进程在调用MoveFi IeEx函数进行写重启删除,钩子函数允许该操作,并调用或通知NtSetValueKey内核函数,使得操作系统在初始化过程中完成文件删除的操作。
[0146]进程路径获取子单元,用于依据所述当前进程获取内核函数以及系统信息查询内核函数获取所述进程路径。
[0147]本实施例的装置,可以用于执行图1和图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0148]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0149]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0150]尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0151]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,〃计算机可读介质〃可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDR0M)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0152]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
[0153]在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0154]本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
[0155]图4为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图4所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的保护安全防护应用程序文件的方法。
[0156]处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。
[0157]该电子设备以多种形式存在,包括但不限于:
[0158](I)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
[0159](2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
[0160](3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0161](4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
[0162](5)其他具有数据交互功能的电子设备。
[0163]本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0164]为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
[0165]通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本
[0166]发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0167]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【主权项】
1.一种保护安全防护应用程序文件的方法,其特征在于,包括: 在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数; 依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数; 如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数; 如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。2.根据权利要求1所述的保护安全防护应用程序文件的方法,其特征在于,所述在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数包括: 预先注入的钩子函数监测到移动操作内核函数被调用; 监测所述移动操作内核函数被写入移动操作参数; 监测写入移动操作参数的移动操作内核函数调用所述键值设置内核函数; 监测所述写入移动操作参数的移动操作内核函数将所述移动操作参数写入调用的所述键值设置内核函数; 钩住所述写入移动操作参数的所述键值设置内核函数。3.根据权利要求2所述的保护安全防护应用程序文件的方法,其特征在于,所述钩住所述写入移动操作参数的所述键值设置内核函数时,将所述移动操作参数写入所述钩子函数中; 所述依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数包括: 依据所述钩子函数中的注册表路径句柄参数获取注册表路径,提取所述钩子函数中的键值名参数。4.根据权利要求1所述的保护安全防护应用程序文件的方法,其特征在于,所述键值设置内核函数为NtSetValueKey内核函数。5.根据权利要求1至4任一项所述的保护安全防护应用程序文件的方法,其特征在于,在所述如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同之后,拒绝所述键值设置内核函数写注册表的操作之前,所述方法还包括: 获取调用所述键值设置内核函数的进程路径; 如果所述进程路径对应的应用程序与预先设置的应用程序库中任一应用程序不相同,执行所述拒绝所述键值设置内核函数写注册表的操作的步骤。6.根据权利要求5所述的保护安全防护应用程序文件的方法,其特征在于,所述获取调用所述键值设置内核函数的进程路径包括: 调用操作系统的当前进程获取内核函数以及系统信息查询内核函数,依据所述当前进程获取内核函数以及系统信息查询内核函数获取所述进程路径。7.根据权利要求5所述的保护安全防护应用程序文件的方法,其特征在于,所述方法还包括: 如果所述进程路径对应的应用程序与预先设置的安全防护应用程序库中任一安全防护应用程序相同,解除对所述键值设置内核函数的钩住。8.根据权利要求1至4任一项所述的保护安全防护应用程序文件的方法,其特征在于,所述方法还包括: 如果所述注册表路径不为预先设置的会话管理注册表路径,或提取的键值名参数不为预先设置的重命名操作键值,或提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录不相同,解除对所述键值设置内核函数的钩住。9.一种保护安全防护应用程序文件的装置,其特征在于,包括:钩子监测模块、键值名提取模块、文件路径获取模块以及文件处理模块,其中, 钩子监测模块,用于在预先注入的钩子函数监测到键值设置内核函数被调用时,钩住所述键值设置内核函数; 键值名提取模块,用于依据所述键值设置内核函数中的注册表路径句柄参数获取注册表路径,提取所述键值设置内核函数中的键值名参数; 文件路径获取模块,如果所述注册表路径为预先设置的会话管理注册表路径,且提取的键值名参数为预先设置的重命名操作键值,提取所述键值设置内核函数中的待删除文件路径参数; 文件处理模块,如果提取的待删除文件路径参数与预先设置的安全防护应用程序文件目录库中任一安全防护应用程序文件目录相同,拒绝所述键值设置内核函数写注册表的操作。10.根据权利要求9所述的保护安全防护应用程序文件的装置,其特征在于,所述钩子监测模块包括:第一调用监测单元、第一写入监测单元、第二调用监测单元、第二写入监测单元以及第一钩子单元,其中, 第一调用监测单元,用于利用预先注入的钩子函数监测到移动操作内核函数被调用; 第一写入监测单元,用于监测所述移动操作内核函数被写入移动操作参数; 第二调用监测单元,用于监测写入移动操作参数的移动操作内核函数调用所述键值设置内核函数; 第二写入监测单元,用于监测所述写入移动操作参数的移动操作内核函数将所述移动操作参数写入调用的所述键值设置内核函数; 第一钩子单元,用于钩住所述写入移动操作参数的所述键值设置内核函数。
【文档编号】G06F21/56GK105893847SQ201610258341
【公开日】2016年8月24日
【申请日】2016年4月22日
【发明人】李文靖
【申请人】北京金山安全软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1