一种获取文件占用进程的方法、装置及电子设备制造方法及图纸

技术编号:13896564 阅读:43 留言:0更新日期:2016-10-25 03:23
本发明专利技术的实施例公开一种获取文件占用进程的方法、装置及电子设备,涉及计算机安全技术领域,能够使用户方便地查到找占用目标文件的进程。该方法,包括:获取系统中所有的句柄结构信息;其中,句柄结构信息包括句柄值、句柄类型和进程标识值;判断目标文件的文件路径是否与系统中所有的句柄结构信息中一个文件句柄结构信息对应的文件的文件路径相一致,若是,则将对应的文件的文件路径与目标文件的文件路径相一致的文件句柄结构信息确定为目标文件对应的文件句柄结构信息;将目标文件对应的文件句柄结构信息中的进程标识值确定为占用目标文件的进程的进程标识值。本发明专利技术能够高效稳定地查找到占用文件的进程。

【技术实现步骤摘要】

本专利技术涉及计算机安全
,尤其涉及一种获取文件占用进程的方法、装置及电子设备
技术介绍
随着计算机技术的发展,用户对计算机的应用也越来越普遍。用户在使用电脑的过程中,经常在删除一些文件时会遇到无法删除的问题,即使计算机杀毒软件应用层模块也会遇到无法删除文件的问题,原因是这些文件被进程独占了其文件句柄,导致其它进程无法删除文件,包括用户操作的Explorer进程,都是无法删除的。在计算机安全
中,如何删除染毒文件是安全软件的主旨。目前,为了删除使用普通手段无法删除的文件,通用方法是找出占用此文件的进程后,首先结束进程,才可把文件删掉。但是,系统中会有许多个进程,用户通过肉眼无法判断出占用目标文件的进程,又不可能把系统的所有进程都关掉,因此,需要一种能够有效获取文件占用进程的方案。
技术实现思路
有鉴于此,本专利技术实施例提供一种获取文件占用进程的方法、装置及电子设备,能够使用户方便地查到找占用目标文件的进程。第一方面,本专利技术实施例提供一种获取文件占用进程的方法,包括:获取系统中所有的句柄结构信息;其中,所述句柄结构信息包括句柄值、句柄类型和进程标识值;判断目标文件的文件路径是否与系统中所有的句柄结构信息中一个文件句柄结构信息对应的文件的文件路径相一致,若是,则将对应的文件的文件路径与所述目标文件的文件路径相一致的文件句柄结构信息确定为所述目标文件对应的文件句柄结构信息;将所述目标文件对应的文件句柄结构信息中的进程标识值确定为占用所述目标文件的进程的进程标识值。结合第一方面,在第一方面的第一种实施方式中,系统为Windows操作系统;其中,所述获取系统中所有的句柄结构信息,包括:调用Windows操作系统中查询系统信息的函数NtQuerySystemInformation,调用时将查询系统信息的函数NtQuerySystemInformation的第一个参数设置为16:获取所述查询系统信息的函数NtQuerySystemInformation返回的链表结构的数据;其中,在所述链表结构的数据节点中保存有系统中句柄结构信息。结合第一方面,在第一方面的第二种实施方式中,所述判断目标文件的文件路径是否与系统中所有的句柄结构信息中一个文件句柄结构信息对应的文件的文件路径相一致,若是,则将对应的文件的文件路径与所述目标文件的文件路径相一致的文件句柄结构信息确定为所述目标文件对应的文件句柄结构信息,包括:步骤21:判断所述系统中所有的句柄结构信息的第N个句柄结构信息中的句柄类型是否是文件句柄类型,是则执行步骤22,否则执行步骤25;其中,N的初始值为1;步骤22:根据所述第N个句柄结构信息中的句柄值,获取所述第N个句柄结构信息对应的文件的文件路径,并继续执行步骤23;步骤23:判断所述目标文件的文件路径是否与所述第N个句柄结构信息对应的文件的文件路径相一致,是则执行步骤24,否则执行步骤25;步骤24:将所述第N个句柄结构信息确定为所述目标文件对应的文件句柄结构信息;步骤25:判断N是否等于M,若N等于M则结束流程,若N不等于M,则令N=N+1后返回步骤21;其中,M为所述系统中所有的句柄结构信息的数量。结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述根据所述第N个句柄结构信息中的句柄值,获取所述第N个句柄结构信息对应的文件的文件路径,包括:根据所述第N个句柄结构信息中的句柄值,调用系统中查询信息文件函数NtQueryInformationFile获取所述第N个句柄结构信息对应的文件的文件路径。结合第一方面,在第一方面的第四种实施方式中,在将所述目标文件对应的文件句柄结构信息中的进程标识值确定为占用所述目标文件的进程的进程标识值之后,还包括:根据所述占用所述目标文件的进程的进程标识值,获取占用所述目标文件的进程名。结合第一方面的第四种实施方式,在第一方面的第五种实施方式中,所述系统为Windows操作系统;其中,所述根据所述占用所述目标文件的进程的进程标识值,获取占用所述目标文件的进程名,包括:通过调用进程信息快照获取函数CreateToolhelp32Snapshot获得系统中正在运行的所有进程信息列表;所述进程信息包括进程标识值及进程名;通过调用第一个进程句柄获取函数Process32First,将所述进程信息列表中第1个进程信息提取到存放进程信息结构体PROCESSENTRY32中保存;判断所述占用所述目标文件的进程的进程标识值是否与所述存放进程信息结构体PROCESSENTRY32中当前保存的进程信息中的进程标识值相一致;若所述占用所述目标文件的进程的进程标识值与所述存放进程信息结构体PROCESSENTRY32中当前保存的进程信息中的进程标识值相一致,则获取所述存放进程信息结构体PROCESSENTRY32中当前保存的进程信息中的进程名,作为占用所述目标文件的进程名;若所述占用所述目标文件的进程的进程标识值与所述存放进程信息结构体PROCESSENTRY32中当前保存的进程信息中的进程标识值不一致,则通过调用下一个进程句柄获取函数Process32Next,将所述存放进程信息结构体PROCESSENTRY32中当前保存的进程信息在所述进程信息列表中对应的下一个进程信息提取到存放进程信息结构体PROCESSENTRY32中保存,然后返回执行判断所述占用所述目标文件的进程的进程标识值是否与所述存放进程信息结构体PROCESSENTRY32中当前保存的进程信息中的进程标识值相一致的步
骤。结合第一方面,在第一方面的第六种可能的实现方式中,在所述将所述目标文件对应的文件句柄结构信息中的进程标识值确定为占用所述目标文件的进程的进程标识值之后,还包括:根据占用所述目标文件的进程的进程标识值,解除占用所述目标文件的进程对所述目标文件的占用;删除所述目标文件。结合第一方面的第六种实施方式,在第一方面的第七种实施方式中,所述系统为Windows操作系统;所述根据占用所述目标文件的进程的进程标识值,解除占用所述目标文件的进程对所述目标文件的占用,包括:根据占用所述目标文件的进程的进程标识值,调用系统的打开进程函数OpenProcess打开占用所述目标文件的进程,获取占用所述目标文件的进程的进程句柄;将获取到的所述进程句柄作为参数传入终止进程函数TerminateProcess,通过所述终止进程函数TerminateProcess结束占用所述目标文件的进程;所述删除所述目标文件,包括:调用系统的删除文件函数DeleteFile删除所述目标文件。第二方面,本专利技术实施例提供一种获取文件占用进程的装置,包括:句柄结构信息获取模块,用于获取系统中所有的句柄结构信息,并在获取到系统中所有的句柄结构信息后向匹配模块发送匹配指令;其中,所述句柄结构信息包括句柄值、句柄类型和进程标识值;匹配模块,用于根据所述匹配指令,判断目标文件的文件路径是否与句柄结构信息获取模块获取的系统中所有的句柄结构信息中一个文件句柄结构信息对应的文件的文件路径相一致,若是,则将对应的文件的文件路径与所述目标文件的文件路径相一致的文件句柄结构信息确定为所述目标文件对应的文件句柄结构信息,并将所述目标文件对应的文件句柄结构信息发本文档来自技高网
...

【技术保护点】
一种获取文件占用进程的方法,其特征在于,包括:获取系统中所有的句柄结构信息;其中,所述句柄结构信息包括句柄值、句柄类型和进程标识值;判断目标文件的文件路径是否与系统中所有的句柄结构信息中一个文件句柄结构信息对应的文件的文件路径相一致,若是,则将对应的文件的文件路径与所述目标文件的文件路径相一致的文件句柄结构信息确定为所述目标文件对应的文件句柄结构信息;将所述目标文件对应的文件句柄结构信息中的进程标识值确定为占用所述目标文件的进程的进程标识值。

【技术特征摘要】
1.一种获取文件占用进程的方法,其特征在于,包括:获取系统中所有的句柄结构信息;其中,所述句柄结构信息包括句柄值、句柄类型和进程标识值;判断目标文件的文件路径是否与系统中所有的句柄结构信息中一个文件句柄结构信息对应的文件的文件路径相一致,若是,则将对应的文件的文件路径与所述目标文件的文件路径相一致的文件句柄结构信息确定为所述目标文件对应的文件句柄结构信息;将所述目标文件对应的文件句柄结构信息中的进程标识值确定为占用所述目标文件的进程的进程标识值。2.根据权利要求1所述的获取文件占用进程的方法,其特征在于,所述系统为Windows操作系统;其中,所述获取系统中所有的句柄结构信息,包括:调用Windows操作系统中查询系统信息的函数NtQuerySystemInformation,调用时将查询系统信息的函数NtQuerySystemInformation的第一个参数设置为16;获取所述查询系统信息的函数NtQuerySystemInformation返回的链表结构的数据;其中,在所述链表结构的数据节点中保存有系统中句柄结构信息。3.根据权利要求1所述的获取文件占用进程的方法,其特征在于,所述判断目标文件的文件路径是否与系统中所有的句柄结构信息中一个文件句柄结构信息对应的文件的文件路径相一致,若是,则将对应的文件的文件路径与所述目标文件的文件路径相一致的文件句柄结构信息确定为所述目标文件对应的文件句柄结构信息,包括:步骤21:判断所述系统中所有的句柄结构信息的第N个句柄结构信息中的句柄类型是否是文件句柄类型,是则执行步骤22,否则执行步骤25;其中,N的初始值为1;步骤22:根据所述第N个句柄结构信息中的句柄值,获取所述第N个句柄结构信息对应的文件的文件路径,并继续执行步骤23;步骤23:判断所述目标文件的文件路径是否与所述第N个句柄结构信息对
\t应的文件的文件路径相一致,是则执行步骤24,否则执行步骤25;步骤24:将所述第N个句柄结构信息确定为所述目标文件对应的文件句柄结构信息;步骤25:判断N是否等于M,若N等于M则结束流程,若N不等于M,则令N=N+1后返回步骤21;其中,M为所述系统中所有的句柄结构信息的数量。4.根据权利要求3所述的获取文件占用进程的方法,其特征在于,所述根据所述第N个句柄结构信息中的句柄值,获取所述第N个句柄结构信息对应的文件的文件路径,包括:根据所述第N个句柄结构信息中的句柄值,调用系统中查询信息文件函数NtQueryInformationFile获取所述第N个句柄结构信息对应的文件的文件路径。5.根据权利要求1所述的获取文件占用进程的方法,其特征在于,在将所述目标文件对应的文件句柄结构信息中的进程标识值确定为占用所述目标文件的进程的进程标识值之后,还包括:根据所述占用所述目标文件的进程的进程标识值,获取占用所述目标文件的进程名。6.根据权利要求5所述的获取文件占用进程的方法,其特征在于,所述系统为Windows操作系统;其中,所述根据所述占用所述目标文件的进程的进程标识值,获取占用所述目标文件的进程名,包括:通过调用进程信息快照获取函数CreateToolhelp32Snapshot获得系统中正在运行的所有进程信息列表;所述进程信息包括进程标识值及进程名;通过调用第一个进程句柄获取函数Process32First,将所述进程信息列表中第1个进程信息提取到存放进程信息结构体PRO...

【专利技术属性】
技术研发人员:李文靖
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京;11

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

1