文件打开方法及装置制造方法及图纸

技术编号:8452986 阅读:220 留言:0更新日期:2013-03-21 16:00
本发明专利技术公开了一种文件打开方法及装置,属于数据处理技术领域。方法包括:捕获文件打开动作,并获取对应的原始文件系统设备对象和原始文件系统分发函数地址;直接向原始文件系统设备对象所在的文件系统发送文件打开请求,并由文件系统将文件打开请求传递给原始文件系统分发函数地址所对应的原始文件系统分发函数,由原始文件系统分发函数执行文件打开操作。本发明专利技术通过直接向原始文件系统设备对象所在的文件系统发送文件打开请求,由原始文件系统分发函数执行文件打开操作,实现对文件过滤驱动的穿透,从而避免了因每次打开文件都进行病毒扫描的不必要操作,且避免安装多个杀毒软件时,因重复打开文件进行扫描造成的系统负担加重问题及兼容性问题。

【技术实现步骤摘要】

本专利技术涉及数据处理
,特别涉及一种文件打开方法及装置
技术介绍
随着网络的迅速发展,信息数量日益增加,存储信息的各种电子文件数量也越来越多。无论是在日常的休闲娱乐中,还是在紧张忙碌的工作中,都常常会看到或用到各种各样的文件,打开文件也几乎成为了人们每天必不可少的事。现有的文件打开方式都是通过常规的Windows API (Application ProgrammingInterface,应用程序编程接口 )机制实现,且文件的打开操作会被文件过滤驱动捕获和控制。其中,文件过滤驱动是一种Windows驱动程序,其依附在文件系统上,可以截获系统对文件的访问,并提供过滤控制等功能。在装有杀毒软件的机器上,文件打开动作被文件过滤驱动捕获后,会激活一次病毒扫描。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题现有的文件打开方式中,文件打开时激活的病毒扫描在多数情况下是不必要的,且会加重系统负担;另外,在多个杀毒软件共存的情况下,其中一款杀毒软件的文件打开操作会引起另一款杀毒软件的病毒扫描,扫描又会打开文件,另一款杀毒会被激活,然后再去扫描,由此引发文件的重复打开,导致系统出现兼容性问题。
技术实现思路
为了在打开文件的同时,避免出现因文件的重复打开而引起的兼容性问题以及加重系统负担的问题,本专利技术实施例提供了一种文件打开方法及装置。所述技术方案如下一方面,提供了一种文件打开方法,所述方法包括捕获文件打开动作,并获取对应的原始文件系统设备对象和原始文件系统分发函数地址;直接向所述原始文件系统设备对象所在的文件系统发送文件打开请求,并由所述文件系统将所述文件打开请求传递给所述原始文件系统分发函数地址所对应的原始文件系统分发函数,由所述原始文件系统分发函数执行文件打开操作。进一步地,所述捕获文件打开动作之前,还包括搜索32位动态链接库文件的导入表,以预设的函数地址替换所述导入表中保存的函数地址;相应地,由所述原始文件系统分发函数执行文件打开操作时,具体包括由所述原始文件系统分发函数按照替换后的预设的函数地址执行文件打开操作。进一步地,所述捕获文件打开动作之后,还包括记录所述文件打开动作所对应的参数;相应地,由所述原始文件系统分发函数执行文件打开操作时,具体包括由所述原始文件系统分发函数按照记录的参数执行文件打开操作。其中,所述获取对应的原始文件系统设备对象,具体包括通过预先编写的驱动程序在记录有文件系统设备对象的VPB结构中查找对应的原始文件系统设备对象。所述获取对应的原始文件系统分发函数地址,具体包括以BOOT方式启动预先编写的驱动程序,通过所述预先编写的驱动程序获取对应的原始文件系统分发函数地址。所述直接向所述原始文件系统设备对象所在的文件系统发送文件打开请求,具体包括使用IoCreateFileSpecifyDeviceObjectHint函数,并以所述原始文件系统设备对象为参数,将所述文件打开请求直接发送给所述原始文件系统设备对象所在的文件系统。另一方面,还提供了一种文件打开装置,所述装置包括捕获模块,用于捕获文件打开动作;第一获取模块,用于在所述捕获模块捕获到文件打开动作后,获取对应的原始文件系统设备对象;第二获取模块,用于在所述捕获模块捕获到文件打开动作后,获取对应的原始文件系统分发函数地址;发送模块,用于直接向所述第一获取模块获取到的原始文件系统设备对象所在的文件系统发送文件打开请求,并由所述文件系统将所述文件打开请求传递给所述第二获取模块获取到的原始文件系统分发函数地址所对应的原始文件系统分发函数;打开模块,用于由所述原始文件系统分发函数执行文件打开操作。进一步地,所述装置,还包括替换模块,用于搜索32位动态链接库文件的导入表,以预设的函数地址替换所述导入表中保存的函数地址;相应地,所述打开模块,具体用于由所述原始文件系统分发函数按照所述替换模块替换后的预设的函数地址执行文件打开操作。进一步地,所述装置,还包括记录模块,用于记录所述捕获模块捕获到的文件打开动作所对应的参数;相应地,所述打开模块,具体用于由所述原始文件系统分发函数按照所述记录模块记录的参数进行文件打开操作。其中,所述第一获取模块,具体用于通过预先编写的驱动程序在记录有文件系统设备对象的VPB结构中查找对应的原始文件系统设备对象。所述第二获取模块,具体用于以BOOT方式启动预先编写的驱动程序,通过所述预先编写的驱动程序获取对应的原始文件系统分发函数地址。所述发送模块,具体用于使用IoCreateFileSpecifyDeviceObjectHint函数,并以所述原始文件系统设备对象为参数,将所述文件打开请求直接发送给所述原始文件系统设备对象所在的文件系统。本专利技术实施例提供的技术方案带来的有益效果是通过捕获文件打开动作,直接向对应的原始文件系统设备对象所在的文件系统发送文件打开请求,由对应的原始文件系统分发函数进行文件打开操作,实现了对文件过滤驱动的穿透,从而避免了因每次打开文件都进行病毒扫描的不必要操作,且避免了在安装多个杀毒软件时,因重复打开文件进行扫描所造成的系统负担加重问题及兼容性问题。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是本专利技术实施例一提供的文件打开方法流程图;图2是本专利技术实施例二提供的文件打开方法流程图;图3是本专利技术实施例二提供的文件打开过程中的穿透流程图;图4是本专利技术实施例三提供的文件打开装置的结构示意图;图5是本专利技术实施例三提供的另一种文件打开装置的结构示意图;图6是本专利技术实施例三提供的又一种文件打开装置的结构示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。实施例一由于现有的文件打开方式中,文件打开动作会被文件过滤驱动捕获和控制,从而激活病毒扫描,该种操作不仅会增加系统的负担,针对安装多个杀毒软件的情况,该种操作还可引发多个杀毒软件的兼容性问题。对此,本实施例提供了一种文件打开方法,该方法通过穿透原有的文件打开方式中的文件过滤驱动操作,直接将文件打开请求发送到文件系统来执行打开操作,从而避免了因文件过滤驱动的控制所造成的系统负担加重问题及兼容性问题。参见图1,本实施例提供的方法流程具体如下101 :捕获文件打开动作,并获取对应的原始文件系统设备对象和原始文件系统分发函数地址;102:直接向原始文件系统设备对象所在的文件系统发送文件打开请求,并由文件系统将文件打开请求传递给原始文件系统分发函数地址所对应的原始文件系统分发函数;103 :由原始文件系统分发函数执行文件打开操作。进一步地,捕获文件打开动作之前,还包括搜索32位动态链接库文件的导入表,以预设的函数地址替换导入表中保存的函数地址;相应地,由原始文件系统分发函数执行文件打开操作时,具体包括由原始文件系统分发函数按照替换后的预设的函数地址执行文件打开操作。其中,32位动态连接库文件的导入表中记录了可执行文件需要使用到的系统API函数的地址,这个API函数的地址即为导入表中保存本文档来自技高网...

【技术保护点】
一种文件打开方法,其特征在于,所述方法包括:捕获文件打开动作,并获取对应的原始文件系统设备对象和原始文件系统分发函数地址;直接向所述原始文件系统设备对象所在的文件系统发送文件打开请求,并由所述文件系统将所述文件打开请求传递给所述原始文件系统分发函数地址所对应的原始文件系统分发函数,由所述原始文件系统分发函数执行文件打开操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:谢飞高小明马劲松刘桂泽
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1