[发明专利]一种删除文件的方法及文件删除装置有效
| 申请号: | 201110070717.X | 申请日: | 2011-03-23 |
| 公开(公告)号: | CN102693232A | 公开(公告)日: | 2012-09-26 |
| 发明(设计)人: | 高小明;谢飞 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
| 地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 删除 文件 方法 装置 | ||
技术领域
本发明涉及信息处理技术,特别涉及一种删除文件的方法及文件删除装置。
背景技术
用户在使用计算机或移动通信设备的过程中,会产生并存储大量的文件,从而耗尽计算机或移动通信设备的存储空间,因而,为了能够有效利用有限的计算机或移动通信设备的存储空间,需要对存储的文件进行及时的清理以删除不需要的文件,尤其是恶意软件,但一般的恶意软件是不能直接清除的,所以需要特殊的方法。
现有技术中,文件删除方案采用windows操作系统应用编程接口(Windows API,Windows Application Program Interface),一般是删除文件(DeleteFile)。具体来说,查看待删除文件属性,如果待删除文件具有只读属性,则去掉该待删除文件的只读属性,然后进行删除即可。
上述通过Windows API删除文件的方法,可以删除未被使用的文件。但在实际应用中,如果文件被独占打开或者可执行文件正在执行中,则上述的删除处理就会失败。例如,恶意软件一般为可执行文件,如果恶意软件已经运行,或者,利用钩子(hook)函数或过滤驱动的方式保护自己,则上述常规删除方法不能将该恶意软件从磁盘删除;再例如,在杀毒软件扫描到病毒文件后,如果该病毒文件已经被打开且没有共享删除的权限,则由于用户没有获取该病毒文件的删除权限,因而该病毒文件通过Windows API方法也不会被删除。
由上述可见,现有删除文件的方法,由于只能删除未被使用的文件,对于需要删除的运行中的文件、被独占访问的文件、没有共享删除权限的文件以及通过hook或过滤驱动方式保护自己的文件,还无法通过常规方法进行删除。
发明内容
有鉴于此,本发明的主要目的在于提出一种删除文件的方法,删除通过常规方法不可删除的文件。
本发明的另一目的在于提出一种文件删除装置,删除通过常规方法不可删除的文件。
为达到上述目的,本发明提供了一种删除文件的方法,该方法包括:
确认采用常规方法删除目标文件失败,打开该目标文件,获取删除权限;
查询获取文件系统创建的设备对象,构造输入/输出请求包,发送至文件系统创建的设备对象;
确认文件系统分发函数地址正确,获取导入表中预先修改的函数的地址信息;
根据获取的地址信息映射的函数检测目标文件,在检测到目标文件对应的文件对象为预先设置的待删除文件后,返回标识可删除目标文件的信息,删除目标文件。
所述打开该目标文件,获取删除权限具体包括:
以删除权限尝试打开该目标文件,如果目标文件可打开,获取该目标文件的删除权限;如果目标文件不可打开,以空的权限打开目标文件,设置目标文件对应的文件对象的删除权限字段为可删除,获取该目标文件的删除权限。
所述目标文件可打开,获取的删除权限为该目标文件之前打开操作设置的共享权限的最小集合。
所述确认文件系统分发函数地址正确具体包括:
启动时,设置文件系统模块或Windows内核模块记录文件系统分发函数地址;
在接收到输入/输出请求包后,通过查询文件系统分发函数地址是否在文件系统模块或Windows内核模块来确认当前文件系统分发函数地址是否正确。
所述目标文件包括:运行中的文件、被独占访问的文件、没有共享删除权限的文件以及通过钩子或过滤驱动方式保护自己的文件。
所述确认采用常规方法删除目标文件失败具体包括:
获取目标文件属性,确定该目标文件属性为只读,去掉只读属性;
调用应用编程接口删除文件对该目标文件执行删除处理,确定删除失败。
所述函数为MmFlushImageSection函数。
一种文件删除装置,该装置包括:删除权限获取模块、输入/输出请求包IRP构造模块、设备对象模块、导入表模块以及检测模块,其中,
删除权限获取模块,用于确认采用常规方法删除目标文件失败,打开该目标文件,获取删除权限,输出至IRP构造模块;
IRP构造模块,用于构造输入/输出请求包,查询获取文件系统创建的设备对象,将构造的输入/输出请求包发送至设备对象模块;
设备对象模块,用于在确认当前文件系统分发函数地址正确后,从导入表模块中获取预先修改的函数的地址信息,输出至检测模块;接收检测模块输出的标识可删除目标文件的信息,关闭目标文件并删除;
导入表模块,用于存储预先修改的函数的地址信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110070717.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种单层WS2与石墨烯复合材料的水热制备方法
- 下一篇:一种调节装置





