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

技术编号:8161728 阅读:176 留言:0更新日期:2013-01-07 19:38
本发明专利技术提供了一种文件解锁、粉碎的方法,包括:判断目标文件是否能打开且满足预设条件;若是,则获取目标文件的句柄,并依据所述句柄获取目标文件的对象;从所述目标文件的对象中查找到对应的文件引用信息库,将所述文件引用信息库中的引用计数值赋为预设值。本发明专利技术所提供的文件解锁、粉碎机制不仅安全、可靠、成功率高,并且可以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强了和驱动级恶意程序攻防的对抗能力。

【技术实现步骤摘要】

本专利技术涉及计算机安全的
,特别是涉及一种文件解锁、粉碎的方法和一种文件解锁、粉碎的装置。
技术介绍
计算机病毒是指“编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。计算机一旦染上病毒,计算机通常表现为其文件被增加、删出、改变名称或属性、移动到其它目录下,病毒对计算机文件的这些操作,可能会导致正常的程序无法运行、计算机操作系统崩溃、计算机被远程控制、用户信息被盗用等一系列的问题。为了保证计算机的安全运行,需要对计算机中感染病毒的文件进行病毒查杀,以 防止和清除病毒的破坏。在安全软件领域,针对染毒计算机文件的“删除”与“反删除”是 安全软件和恶意程序(计算机病毒)对抗的永恒主题之一。纵观windows操作系统平台,常见的反删除技术有(I)文件只读属性限制(2)特殊文件名、畸形文件路径及组合(3)文件权限、所有者限制(4)Windows APILockFile例程锁定(5)文件句柄持有(6)文件共享属性独占(7)用户态相关例程的IAT/EAT/InlineHook(8)内核态相关例程的SSDT Hook(9)文件系统过滤驱动拦截(10)内核相关例程的篡改、热补丁等。现有技术中的病毒,往往通过上述手段给染毒文件加上了加密锁,采用常规手段无法破解加密锁即无法删除染毒文件,这些手段阻止杀毒软件查杀染毒文件。安全软件查杀病毒的过程,可以理解为对染毒文件进行解锁和粉碎。现有安全软件,对染毒文件的解锁和粉碎手段单一,无法破除染毒文件设置的层层保护,对抗能力不强。传统安全软件厂商只解决了部分“反删除”问题,在操作系统内核态的攻防上往往体现出一定的能力缺失,驱动级恶意程序(Rootkit)对抗能力偏弱。因此,目前需要本领域技术人员迫切解决的一个技术问题就是提出一种文件解锁、粉碎的处理机制,用以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强和驱动级恶意程序攻防的对抗能力。
技术实现思路
本专利技术所要解决的技术问题是提供一种文件解锁、粉碎的方法,以增强和驱动级恶意程序攻防的对抗能力。本专利技术还提供了一种文件解锁、粉碎的装置,用以保证上述方法在实际中的应用及实现。为了解决上述问题,本专利技术实施例公开了一种文件解锁、粉碎的方法,包括判断目标文件是否能打开且满足预设条件;若是,则获取目标文件的句柄,并依据所述句柄获取目标文件的对象;从所述目标文件的对象中查找到对应的文件引用信息库,将所述文件引用信息库中的引用计数值赋为预设值。优选的,所述目标文件具有对应的文件路径,所述判断目标文件是否能打开且满足预设条件的步骤具体包括以下子步骤子步骤SI,判断所述目标文件的路径是否能准确定位,若是,则执行子步骤S3 ;若否,则执行子步骤S2;子步骤S2,将所述目标文件路径处理为正确的路径,然后转子步骤S3 ;子步骤S3,依据所述正确的目标文件路径,调用自定义的用于打开文件的应用程序接口尝试打开目标文件,若所述目标文件被打开,则执行子步骤S4 ;子步骤S4,判断所述目标文件的属性是否为只读,若是,则执行子步骤S5 ;若否,则执行子步骤S6 ; 子步骤S5,调用自定义的用于文件属性更改的应用程序接口去除所述目标文件的只读属性,然后转子步骤S6;子步骤S6,调用自定义的用于删除文件的应用程序接口尝试删除所述目标文件,若无法删除,则执行子步骤S7 ;子步骤S7,判定所述目标文件能打开且满足预设条件。优选的,所述从目标文件的对象中查找到对应的文件引用信息库,将所述文件引用信息库中的引用计数值赋为预设值的步骤包括 从目标文件对象的数据结构中找到上下文指针指向的数据结构,然后找到文件弓I用信息库中的Count计数域,赋值为预设值。优选的,所述预设值为O。优选的,所述预设值为1,所述的方法还包括调用Windows操作系统内核态的句柄关闭例程ZwCIose,由所述ZwCIose例程执行文件句柄关闭操作,并将所述文件引用信息库中的引用计数值清零。优选的,所述的方法,还包括若目标文件不能打开且返回句柄占用的错误码,则遍历操作系统的句柄表,获得目标文件对应的文件句柄File Handle,并获取所述文件句柄File Handle所属的进程;切换到所述进程,基于所述进程发起目标文件句柄的关闭操作。本专利技术实施例还公开了一种文件解锁、粉碎的装置,包括判断模块,用于判断目标文件是否能打开且满足预设条件;若是,则调用文件对象获取模块;文件对象获取模块,用于获取目标文件的句柄,并依据所述句柄获取目标文件的对象;引用计数清零模块,用于从所述目标文件的对象中查找到对应的文件引用信息库,将所述文件引用信息库中的引用计数值赋为预设值。优选的,所述目标文件具有对应的文件路径,所述判断模块具体包括以下子模块路径判断子模块,用于判断所述目标文件的路径是否能准确定位,若是,则调用文件打开子模块,若否,则调用路径预处理子模块;路径预处理子模块,用于将所述目标文件路径处理为正确的路径,然后调用文件打开子模块;文件打开子模块,用于依据所述正确的目标文件路径,调用自定义的用于打开文件的应用程序接口尝试打开目标文件,若所述目标文件被打开,则调用文件属性查询子模块;文件属性查询子模块,用于判断所述目标文件的属性是否为只读,若是,则调用只读属性去除子模块;若否,则调用文件删除子模块;只读属性去除子模块,用于调用自定义的用于文件属性更改的应用程序接口去除所述目标文件的只读属 性,然后调用文件删除子模块;调用文件删除子模块,用于调用自定义的用于删除文件的应用程序接口尝试删除所述目标文件,若无法删除,则调用判定子模块;判定子模块,用于判定所述目标文件能打开且满足预设条件。优选的,所述引用计数清零模块包括 上下文指针查找子模块,用于从目标文件对象的数据结构中找到上下文指针指向的数据结构;引用计数域赋值子模块,用于依据上下文指针指向的数据结构找到文件引用信息库中的Count计数域,赋值为预设值。优选的,所述预设值为O。优选的,所述预设值为1,所述的装置还包括句柄关闭模块,用于调用Windows操作系统内核态的句柄关闭例程ZwClose,由所述ZwClose例程执行文件句柄关闭操作,并将所述文件引用信息库中的引用计数值清零。优选的,所述的装置,还包括句柄表遍历模块,用于在目标文件不能打开且返回句柄占用的错误码时,遍历操作系统的句柄表,获得目标文件对应的文件句柄File Handle,并获取所述文件句柄FileHandle所属的进程;句柄关闭操作发起模块,用于切换到所述进程,基于所述进程发起目标文件句柄的关闭操作。与现有技术相比,本专利技术具有以下优点本专利技术实施例通过提供一种暴力删除文件的机制,即在文件可以打开,但经过一些解锁、粉碎手段,如文件路径预处理、只读属性去除等,仍然无法删除的情况下,通过“直接操作”(DK0M术语,Direct KernelObject Manipulation)文件系统的内部数据结构,进入文件的引用信息库,将文件的引用计数清零,实现文件的解锁与粉碎。本专利技术所提供的文件解锁、粉碎机制不仅安全、可靠、成功率高,并且可以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强了和驱动级恶意程序攻防的对抗能力本文档来自技高网
...

【技术保护点】
一种文件解锁、粉碎的方法,其特征在于,包括:判断目标文件是否能打开且满足预设条件;若是,则获取目标文件的句柄,并依据所述句柄获取目标文件的对象;从所述目标文件的对象中查找到对应的文件引用信息库,将所述文件引用信息库中的引用计数值赋为预设值。

【技术特征摘要】

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

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

1