一种文件解锁的方法及装置制造方法及图纸

技术编号:8161730 阅读:165 留言:0更新日期:2013-01-07 19:38
本发明专利技术提供了一种文件解锁的方法和装置,其中,所述方法包括:判断目标文件是否存在句柄占用的情形;若是,则遍历操作系统的句柄表,获得目标文件对应的文件句柄File?Handle,并获取所述文件句柄File?Handle所属的进程;切换到所述进程,基于所述进程发起目标文件句柄的关闭操作。本发明专利技术所提供的文件解锁、粉碎、粉碎机制不仅安全、可靠、成功率高,并且可以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强了和驱动级恶意程序攻防的对抗能力。

【技术实现步骤摘要】

本专利技术涉及计算机安全的
,特别是涉及一种文件解锁的方法和一种文件解锁的装置。
技术介绍
计算机病毒是指“编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。计算机一旦染上病毒,计算机通常表现为其文件被增加、删出、改变名称或属性、移动到其它目录下,病毒对计算机文件的这些操作,可能会导致正常的程序无法运行、计算机操作系统崩溃、计算机被远程控制、用户信息被盗用等一系列的问题。为了保证计算机的安全运行,需要对计算机中感染病毒的文件进行病毒查杀,以防止和清除病毒的破坏。在安全软件领域,针对染毒计算机文件的“删除”与“反删除”是安全软件和恶意程序(计算机病毒)对抗的永恒主题之一。现有技术中的病毒,往往通过文件句柄持有等手段给染毒文件加上了加密锁,采用常规手段无法破解加密锁即无法删除染毒文件,这些手段阻止杀毒软件查杀染毒文件。安全软件查杀病毒的过程,可以理解为对染毒文件进行解锁和粉碎。现有安全软件,对染毒文件的解锁和粉碎手段单一,无法破除染毒文件设置的层层保护,对抗能力不强。传统安全软件厂商只解决了部分“反删除”问题,在操作系统内核态的攻防上往往体现出一定的能力缺失,驱动级恶意程序(Rootkit)对抗能力偏弱。因此,目前需要本领域技术人员迫切解决的一个技术问题就是提出一种文件解锁的处理机制,用以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强和驱动级恶意程序攻防的对抗能力。
技术实现思路
本专利技术所要解决的技术问题是提供一种文件解锁的方法,以增强和驱动级恶意程序攻防的对抗能力。本专利技术还提供了一种文件解锁的装置,用以保证上述方法在实际中的应用及实现。为了解决上述问题,本专利技术实施例公开了一种文件解锁的方法,包括判断目标文件是否存在句柄占用的情形;若是,则遍历操作系统的句柄表,获得目标文件对应的文件句柄File Handle,并获取所述文件句柄File Handle所属的进程;切换到所述进程,基于所述进程发起目标文件句柄的关闭操作。优选的,在判断目标文件是否存在句柄占用的情形之前,还包括尝试打开或删除目标文件;若无法打开或删除目标文件,则读取返回的错误码信息;所述目标文件是否存在句柄占用的情形依据所述错误码信息判断。优选的,若所述错误码信息为STATUS_DELETE_PENDING,数值为0xC0000056L ;或为,ERROR_ACCESS_DENIED,数值为5,则判定所述目标文件存在句柄占用的情形。优选的,所述的方法,还包括所述目标文件句柄的关闭操作完成后,所述目标文件被清除。优选的,所述目标文件具有对应的全路径;所述句柄表位于操作系统内核,其中维护有所有进程打开的句柄信息,所述句柄信息中包括文件句柄File Handle的信息,所述文件句柄File Handle的信息中包括各文件句柄File Handle对应的文件的全路径,所述遍历操作系统的句柄表,获得目标文件对应的文件句柄File Handle的步骤包括 将目标文件的全路径与各文件句柄File Handle对应的文件的全路径进行对比,若找到一致的文件全路径,则提取该文件全路径对应的文件句柄File Handle为所述目标文件对应的文件句柄File Handle。优选的,所述的方法,还包括判断所述文件句柄File Handle所属的进程是否能切换,若在能切换时执行所述切换至进程的步骤。优选的,所述切换到所述进程的操作是通过调用操作系统应用程序接口 API的堆栈连接进程例程KeStackAttachProcess执行的;所述遍历操作系统的句柄表的操作是通过调用操作系统应用程序接口 API的系统信息查询例程ZwQuerySystemInformation中的句柄信息系统SystemHandleInformation的功能执行的。优选的,所述基于进程发起目标文件句柄的关闭操作的步骤包括以所述进程的名义发起文件句柄关闭操作请求;依据所述请求调用Windows操作系统内核态的句柄关闭例程ZwClose,所述ZwClose例程执行文件句柄关闭操作。本专利技术实施例还公开了一种文件解锁的装置,包括判断模块,用于判断目标文件是否存在句柄占用的情形;若是,则调用句柄表遍历模块;句柄表遍历模块,用于遍历操作系统的句柄表,获得目标文件对应的文件句柄File Handle ;进程获取模块,用于获取所述文件句柄File Handle所属的进程;进程切换模块,用于切换到所述进程;句柄关闭操作发起模块,用于基于所述进程发起目标文件句柄的关闭操作。优选的,所述目标文件是否存在句柄占用的情形依据所述错误码信息判断,所述的装置还包括文件操作模块,用于尝试打开或删除目标文件;错误码读取模块,用于在无法打开或删除目标文件时,读取返回的错误码信息。优选的,所述目标文件具有对应的全路径;所述句柄表位于操作系统内核,其中维护有所有进程打开的句柄信息,所述句柄信息中包括文件句柄File Handle的信息,所述文件句柄File Handle的信息中包括各文件句柄File Handle对应的文件的全路径,所述目标文件对应的文件句柄File Handle通过所述全路径对比获得。优选的,所述的装置,还包括切换判断模块,用于判断所述文件句柄File Handle所属的进程是否能切换,以及,在能切换时调用进程切换模块。优选的,所述句柄关闭操作发起模块包括请求发起子模块,用于以所述进程的名义发起文件句柄关闭操作请求;例程调用子模块,用于依据所述请求调用Windows操作系统内核态的句柄关闭例程ZwClose,所述ZwClose例程执行文件句柄关闭操作。与现有技术相比,本专利技术具有以下优点、本专利技术实施例通过在目标文件存在句柄占用的情形时,遍历操作系统的句柄表,获得目标文件对应的文件句柄File Handle,并获取所述文件句柄File Handle所属的进程;然后切换到所述进程,以该进程的名义发起目标文件句柄的关闭操作,从而实现文件解锁和粉碎过程。本专利技术所提供的文件解锁、粉碎、粉碎机制不仅安全、可靠、成功率高,并且可以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强了和驱动级恶意程序攻防的对抗能力。附图说明图I是本专利技术的一种文件解锁的方法实施例的步骤流程图;图2是本专利技术的一种文件解锁的装置实施例的结构框图。具体实施例方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。参考图I,示出了本专利技术的一种文件解锁的方法实施例的步骤流程图,具体可以包括以下步骤步骤101、尝试打开或删除目标文件;需要说明的是,在本专利技术实施例中,所述文件包括WINDOWS操作系统中所支持类型的文件。所述文件打开不是指通过双击鼠标或按回车键等触发方式打开文件(如*. exe、*. doc等类型的文件);而是指用操作系统API或本专利技术的自定义的应用程序接口 BAPI (应用本专利技术,可以在操作系统用户态接口完整实现一套文件操作调用库)的CreateFileO函数等打开文件、得到文件句柄的操作,因为只有得到文件句柄后才可以进一步操作该文件。从函数调用方法角度而言,本专利技术实施例中所指文件“打开”主要包本文档来自技高网...

【技术保护点】
一种文件解锁的方法,其特征在于,包括:判断目标文件是否存在句柄占用的情形;若是,则遍历操作系统的句柄表,获得目标文件对应的文件句柄FileHandle,并获取所述文件句柄File?Handle所属的进程;切换到所述进程,基于所述进程发起目标文件句柄的关闭操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:王宇郑文彬
申请(专利权)人:奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1