一种文件解锁的方法及装置的制造方法
【专利说明】一种文件解锁的方法及装置
[0001]本发明专利申请是申请日为2011年6月27日、申请号为201110175557.5、名称为“一种文件解锁的方法及装置”的中国发明专利申请的分案申请。
技术领域
[0002]本发明涉及计算机安全的技术领域,特别是涉及一种文件解锁的方法和一种文件解锁的装置。
【背景技术】
[0003]计算机病毒是指“编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。计算机一旦染上病毒,计算机通常表现为其文件被增加、删出、改变名称或属性、移动到其它目录下,病毒对计算机文件的这些操作,可能会导致正常的程序无法运行、计算机操作系统崩溃、计算机被远程控制、用户信息被盗用等一系列的问题。
[0004]为了保证计算机的安全运行,需要对计算机中感染病毒的文件进行病毒查杀,以防止和清除病毒的破坏。在安全软件领域,针对染毒计算机文件的“删除”与“反删除”是安全软件和恶意程序(计算机病毒)对抗的永恒主题之一。
[0005]现有技术中的病毒,往往通过文件权限、所有者限制等手段给染毒文件加上了加密锁,采用常规手段无法破解加密锁即无法删除染毒文件,这些手段阻止杀毒软件查杀染毒文件。安全软件查杀病毒的过程,可以理解为对染毒文件进行解锁和粉碎。现有安全软件,对染毒文件的解锁和粉碎手段单一,无法破除染毒文件设置的层层保护,对抗能力不强。传统安全软件厂商只解决了部分“反删除”问题,在操作系统内核态的攻防上往往体现出一定的能力缺失,驱动级恶意程序(Rootkit)对抗能力偏弱。
[0006]因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提出一种文件解锁的处理机制,用以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强和驱动级恶意程序攻防的对抗能力。
【发明内容】
[0007]本发明所要解决的技术问题是提供一种文件解锁的方法,以增强和驱动级恶意程序攻防的对抗能力。
[0008]本发明还提供了一种文件解锁的装置,用以保证上述方法在实际中的应用及实现。
[0009]为了解决上述问题,本发明实施例公开了一种文件解锁的方法,包括:
[0010]获取目标文件的操作权限信息;
[0011]若所述目标文件无操作权限,则调用自定义的用于目标权限设置的应用程序接口针对所述目标文件添加操作权限。
[0012]优选的,在针对所述目标文件添加操作权限后,还包括:
[0013]调用操作系统应用程序接口 API或自定义的用于打开文件的应用程序接口,打开所述具有操作权限的目标文件。
[0014]优选的,在获取目标文件的操作权限信息之前,还包括:
[0015]调用自定义的用于打开文件的应用程序接口打开所述目标文件。
[0016]优选的,所述的方法还包括:
[0017]对所述具有操作权限的目标文件进行操作,所述操作包括文件删除操作。
[0018]优选的,所述获取目标文件的操作权限信息的步骤包括:
[0019]调用操作系统应用程序接口 API中的GetNamedSecurityInfo例程和AccessCheck例程;
[0020]通过所述GetNamedSecurityInfo例程获取目标文件的安全描述符,以及,通过所述AccessCheck例程依据所述安全描述符查询目标文件的操作权限信息。
[0021]优选的,所述获取目标文件的操作权限信息的步骤包括:
[0022]调用自定义的应用程序接口中的DsGetFileLockType例程,通过所述DsGetFileLockType例程获取目标文件的安全描述符,并依据所述安全描述符查询目标文件的操作权限信息。
[0023]优选的,所述调用自定义的用于目标权限设置的应用程序接口针对目标文件添加操作权限的步骤包括:
[0024]调用自定义的应用程序接口中的DsSetTargetAccess例程设置目标文件的权限集合,所述DsSetTargetAccess例程的执行逻辑设置与操作系统应用程序接口 API中的SetNamedSecurityInfo 例程一致。
[0025]优选的,所述调用自定义的用于打开文件的应用程序接口打开目标文件的步骤包括:
[0026]获取针对目标文件的操作请求,所述请求中包括调用者输入参数,所述输入参数中包括文件路径;
[0027]校验所述调用者输入参数,若校验通过,则依据所述文件路径在对象管理器中查找对应的文件对象解析例程;
[0028]若查找到对应的文件对象解析例程,则依据所述文件对象解析例程生成I/O请求包,并发送至预置的文件系统下层设备的原始地址。
[0029]优选的,所述依据文件路径在对象管理器中查找对应的文件对象解析例程的步骤具体包括以下子步骤;
[0030]子步骤S1、判断文件路径是否已经拆解完毕,若否,则执行子步骤S2;若是,则执行子步骤S4 ;
[0031]子步骤S2、按照路径分隔符拆解出文件路径中下一个待拆解的路径段;
[0032]子步骤S3、采用当前拆解出的路径段在对象管理器中搜索,判断是否存在对应的文件对象例程;若是,则返回子步骤SI ;若否,则执行子步骤S5 ;
[0033]子步骤S4、获得所述文件路径对应的文件对象解析例程。
[0034]子步骤S5、返回未找到对应文件对象解析例程的信息。
[0035]本发明还公开了一种文件解锁的装置,包括:
[0036]权限信息获取模块,用于获取目标文件的操作权限信息;
[0037]权限添加模块,用于在所述目标文件无操作权限时,调用自定义的用于目标权限设置的应用程序接口针对所述目标文件添加操作权限。
[0038]优选的,所述的装置,还包括:
[0039]第一文件打开模块,用于在针对所述目标文件添加操作权限后,调用操作系统应用程序接口 API或自定义的用于打开文件的应用程序接口,打开所述具有操作权限的目标文件。
[0040]优选的,所述的装置还包括:
[0041]第二文件打开模块,用于在获取目标文件的操作权限信息之前,调用自定义的用于打开文件的应用程序接口打开所述目标文件。
[0042]优选的,所述的装置还包括:
[0043]文件粉碎模块,用于对所述具有操作权限的目标文件进行操作,所述操作包括文件删除操作。
[0044]优选的,所述目标文件的操作权限信息通过调用操作系统应用程序接口 API中的GetNamedSecurityInfo 例程和 AccessCheck 例程获取;其中,所述 GetNamedSecurityInfo例程用于获取目标文件的安全描述符,所述AccessCheck例程用于依据所述安全描述符查询目标文件的操作权限信息。
[0045]优选的,所述目标文件的操作权限信息通过调用自定义的应用程序接口中的DsGetFileLockType例程获取;其中,所述DsGetFileLockType例程用于获取目标文件的安全描述符,并依据所述安全描述符查询目标文件的操作权限信息。
[0046]优选的,所述权限添加模块包括:
[0047]预设例程调用子模块,用于调用自定义的应用程序接口中的DsSetTargetAccess例程设置目标文件的权限集合,所述DsSetTargetAccess例程的执行逻辑设置与操作系统应用程序接口 API中的SetNamedSecurityInfo例程一致。
[0048]与现有技术相比,本发明具有以下优点:
[0049]本发明通过在对目标文件操作时若没有操作权限(包括文件权限、所有者限制),则调用自定义的用于目标权限设置的应用程序接口针对该目标文件添加操作权限后,执行目标文件解锁和粉碎的操作。本发明所提供的文件解锁、粉碎、粉碎机制不仅安全、可靠、成功率高,并且可以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强了和驱动级恶意程序攻防的对抗能力。
【附图说明】
[0050]图1是本发明的一种文件解锁的方法实施例1的步骤流程图;
[0051]图2是本发明的一种文件解锁的方法实施例2的步骤流程图;
[0052]图3是本发明的一种文件解锁的装置实施例的结构框图。
【具体实施方式】