CN102982031A - 文件打开方法及装置 - Google Patents

文件打开方法及装置 Download PDF

Info

Publication number
CN102982031A
CN102982031A CN201110260036XA CN201110260036A CN102982031A CN 102982031 A CN102982031 A CN 102982031A CN 201110260036X A CN201110260036X A CN 201110260036XA CN 201110260036 A CN201110260036 A CN 201110260036A CN 102982031 A CN102982031 A CN 102982031A
Authority
CN
China
Prior art keywords
file
file systems
original file
distribution function
open
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201110260036XA
Other languages
English (en)
Other versions
CN102982031B (zh
Inventor
谢飞
高小明
马劲松
刘桂泽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201110260036.XA priority Critical patent/CN102982031B/zh
Priority to US14/342,482 priority patent/US20140207833A1/en
Priority to PCT/CN2012/076874 priority patent/WO2013034006A1/zh
Priority to AU2012306979A priority patent/AU2012306979C1/en
Publication of CN102982031A publication Critical patent/CN102982031A/zh
Priority to HK13109831.9A priority patent/HK1182495A1/zh
Application granted granted Critical
Publication of CN102982031B publication Critical patent/CN102982031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

文件打开方法及装置
技术领域
本发明涉及数据处理技术领域,特别涉及一种文件打开方法及装置。
背景技术
随着网络的迅速发展,信息数量日益增加,存储信息的各种电子文件数量也越来越多。无论是在日常的休闲娱乐中,还是在紧张忙碌的工作中,都常常会看到或用到各种各样的文件,打开文件也几乎成为了人们每天必不可少的事。
现有的文件打开方式都是通过常规的Windows API(Application Programming Interface,应用程序编程接口)机制实现,且文件的打开操作会被文件过滤驱动捕获和控制。其中,文件过滤驱动是一种Windows驱动程序,其依附在文件系统上,可以截获系统对文件的访问,并提供过滤控制等功能。在装有杀毒软件的机器上,文件打开动作被文件过滤驱动捕获后,会激活一次病毒扫描。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有的文件打开方式中,文件打开时激活的病毒扫描在多数情况下是不必要的,且会加重系统负担;另外,在多个杀毒软件共存的情况下,其中一款杀毒软件的文件打开操作会引起另一款杀毒软件的病毒扫描,扫描又会打开文件,另一款杀毒会被激活,然后再去扫描,由此引发文件的重复打开,导致系统出现兼容性问题。
发明内容
为了在打开文件的同时,避免出现因文件的重复打开而引起的兼容性问题以及加重系统负担的问题,本发明实施例提供了一种文件打开方法及装置。所述技术方案如下:
一方面,提供了一种文件打开方法,所述方法包括:
捕获文件打开动作,并获取对应的原始文件系统设备对象和原始文件系统分发函数地址;
直接向所述原始文件系统设备对象所在的文件系统发送文件打开请求,并由所述文件系统将所述文件打开请求传递给所述原始文件系统分发函数地址所对应的原始文件系统分发函数,由所述原始文件系统分发函数执行文件打开操作。
进一步地,所述捕获文件打开动作之前,还包括:
搜索32位动态链接库文件的导入表,以预设的函数地址替换所述导入表中保存的函数地址;
相应地,由所述原始文件系统分发函数执行文件打开操作时,具体包括:
由所述原始文件系统分发函数按照替换后的预设的函数地址执行文件打开操作。
进一步地,所述捕获文件打开动作之后,还包括:
记录所述文件打开动作所对应的参数;
相应地,由所述原始文件系统分发函数执行文件打开操作时,具体包括:
由所述原始文件系统分发函数按照记录的参数执行文件打开操作。
其中,所述获取对应的原始文件系统设备对象,具体包括:
通过预先编写的驱动程序在记录有文件系统设备对象的VPB结构中查找对应的原始文件系统设备对象。
所述获取对应的原始文件系统分发函数地址,具体包括:
以BOOT方式启动预先编写的驱动程序,通过所述预先编写的驱动程序获取对应的原始文件系统分发函数地址。
所述直接向所述原始文件系统设备对象所在的文件系统发送文件打开请求,具体包括:
使用IoCreateFileSpecifyDeviceObjectHint函数,并以所述原始文件系统设备对象为参数,将所述文件打开请求直接发送给所述原始文件系统设备对象所在的文件系统。
另一方面,还提供了一种文件打开装置,所述装置包括:
捕获模块,用于捕获文件打开动作;
第一获取模块,用于在所述捕获模块捕获到文件打开动作后,获取对应的原始文件系统设备对象;
第二获取模块,用于在所述捕获模块捕获到文件打开动作后,获取对应的原始文件系统分发函数地址;
发送模块,用于直接向所述第一获取模块获取到的原始文件系统设备对象所在的文件系统发送文件打开请求,并由所述文件系统将所述文件打开请求传递给所述第二获取模块获取到的原始文件系统分发函数地址所对应的原始文件系统分发函数;
打开模块,用于由所述原始文件系统分发函数执行文件打开操作。
进一步地,所述装置,还包括:
替换模块,用于搜索32位动态链接库文件的导入表,以预设的函数地址替换所述导入表中保存的函数地址;
相应地,所述打开模块,具体用于由所述原始文件系统分发函数按照所述替换模块替换后的预设的函数地址执行文件打开操作。
进一步地,所述装置,还包括:
记录模块,用于记录所述捕获模块捕获到的文件打开动作所对应的参数;
相应地,所述打开模块,具体用于由所述原始文件系统分发函数按照所述记录模块记录的参数进行文件打开操作。
其中,所述第一获取模块,具体用于通过预先编写的驱动程序在记录有文件系统设备对象的VPB结构中查找对应的原始文件系统设备对象。
所述第二获取模块,具体用于以BOOT方式启动预先编写的驱动程序,通过所述预先编写的驱动程序获取对应的原始文件系统分发函数地址。
所述发送模块,具体用于使用IoCreateFileSpecifyDeviceObjectHint函数,并以所述原始文件系统设备对象为参数,将所述文件打开请求直接发送给所述原始文件系统设备对象所在的文件系统。
本发明实施例提供的技术方案带来的有益效果是:
通过捕获文件打开动作,直接向对应的原始文件系统设备对象所在的文件系统发送文件打开请求,由对应的原始文件系统分发函数进行文件打开操作,实现了对文件过滤驱动的穿透,从而避免了因每次打开文件都进行病毒扫描的不必要操作,且避免了在安装多个杀毒软件时,因重复打开文件进行扫描所造成的系统负担加重问题及兼容性问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的文件打开方法流程图;
图2是本发明实施例二提供的文件打开方法流程图;
图3是本发明实施例二提供的文件打开过程中的穿透流程图;
图4是本发明实施例三提供的文件打开装置的结构示意图;
图5是本发明实施例三提供的另一种文件打开装置的结构示意图;
图6是本发明实施例三提供的又一种文件打开装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
由于现有的文件打开方式中,文件打开动作会被文件过滤驱动捕获和控制,从而激活病毒扫描,该种操作不仅会增加系统的负担,针对安装多个杀毒软件的情况,该种操作还可引发多个杀毒软件的兼容性问题。对此,本实施例提供了一种文件打开方法,该方法通过穿透原有的文件打开方式中的文件过滤驱动操作,直接将文件打开请求发送到文件系统来执行打开操作,从而避免了因文件过滤驱动的控制所造成的系统负担加重问题及兼容性问题。参见图1,本实施例提供的方法流程具体如下:
101:捕获文件打开动作,并获取对应的原始文件系统设备对象和原始文件系统分发函数地址;
102:直接向原始文件系统设备对象所在的文件系统发送文件打开请求,并由文件系统将文件打开请求传递给原始文件系统分发函数地址所对应的原始文件系统分发函数;
103:由原始文件系统分发函数执行文件打开操作。
进一步地,捕获文件打开动作之前,还包括:
搜索32位动态链接库文件的导入表,以预设的函数地址替换导入表中保存的函数地址;
相应地,由原始文件系统分发函数执行文件打开操作时,具体包括:
由原始文件系统分发函数按照替换后的预设的函数地址执行文件打开操作。
其中,32位动态连接库文件的导入表中记录了可执行文件需要使用到的系统API函数的地址,这个API函数的地址即为导入表中保存的函数地址,例如,NtCreateFile和NtOpenFile等函数的地址。以预设的函数地址替换导入表中保存的函数地址是为了在文件过滤驱动捕获和控制文件打开操作之前,穿透中间经过的过滤驱动,从而将文件打开请求直接传递到原始文件系统设备对象所在的文件系统,并由原始文件系统分发函数执行文件打开操作,进而避免因每次打开文件都进行病毒扫描的不必要操作,且避免了在安装多个杀毒软件时,因重复打开文件进行扫描所造成的系统负担加重问题及兼容性问题。具体实现时,可以预设的函数MyNtCreateFile的地址替换导入表中保存的函数的地址,当然,还可以采用其他预设的函数,本实施例不对具体的预设的函数地址进行限定,能够实现对文件过滤驱动的穿透即可。
进一步地,捕获文件打开动作之后,还包括:
记录文件打开动作所对应的参数;
相应地,由原始文件系统分发函数执行文件打开操作时,具体包括:
由原始文件系统分发函数按照记录的参数执行文件打开操作。
其中,获取对应的原始文件系统设备对象,具体包括:
通过预先编写的驱动程序在记录有文件系统设备对象的VPB(Volume Parameter Block,卷参数块)结构中查找对应的原始文件系统设备对象。
获取对应的原始文件系统分发函数地址,具体包括:
以BOOT方式启动预先编写的驱动程序,通过预先编写的驱动程序获取对应的原始文件系统分发函数地址。
直接向原始文件系统设备对象所在的文件系统发送文件打开请求,具体包括:
使用IoCreateFileSpecifyDeviceObjectHint函数,并以原始文件系统设备对象为参数,将文件打开请求直接发送给原始文件系统设备对象所在的文件系统。
本实施例提供的方法,通过捕获文件打开动作,直接向对应的原始文件系统设备对象所在的文件系统发送文件打开请求,由对应的原始文件系统分发函数进行文件打开操作,实现了对文件过滤驱动的穿透,从而避免了因每次打开文件都进行病毒扫描的不必要操作,且避免了在安装多个杀毒软件时,因重复打开文件进行扫描所造成的系统负担加重问题及兼容性问题。
为了更加详细地阐述本实施例提供的方法,接下来,以实施例二为例,对本实施例提供的方法进行解释说明,详见如下实施例二:
实施例二
本实施例提供了一种文件打开方法,该方法通过穿透原有的文件打开方式中的文件过滤驱动,直接将文件打开请求发送到文件系统来执行文件打开操作,从而对上述实施例一提供的方法作进一步详细的解释说明,避免了因文件过滤驱动的控制所造成的系统负担加重问题及兼容性问题。参见图2,本实施例提供的方法流程具体如下:
201:搜索32位动态链接库文件的导入表,并以预设的函数地址替换导入表中保存的函数地址;
其中,32位动态链接库文件的导入表,即为可执行文件必备的kernel32.dll的导入表,其记录了文件需要使用到的系统API函数的地址。搜索该32位动态链接库文件的导入表,以预设的函数地址替换导入表中保存的函数地址的过程即为实现hook的过程,通过在ring应用层执行hook,即可先对打开文件等操作进行控制,从而在替换地址之后,当调用原来函数时,流程会进入到替换后的预设的函数。本实施例不对导入表中保存的原函数地址及替换后的地址进行限定,此处hook的函数可以是NtCreateFile和NtOpenFile等函数,替换后的预设的函数地址可根据需要进行设定。具体实现时,可以预设的函数MyNtCreateFile的地址替换导入表中保存的函数的地址,当然,还可以采用其他预设的函数,本实施例不对具体的预设的函数地址进行限定,能够实现对文件过滤驱动的穿透即可。
如图3所示,替换导入表中保存的函数地址后,文件打开流程由原来的虚箭头所示流程修改为实箭头所示的流程,从而穿透了原有流程中可能存在的文件过滤驱动。
需要说明的是,对于多次打开同一文件或打开多个文件的情况,无需每次重复执行该步骤,替换kernel32.dll导入表中记录的系统API函数的地址一次即可,替换之后,每当调用原来的系统API函数时,都将改成调用替换后的地址所对应的函数,以此穿透原来的文件过滤驱动。
202:捕获文件打开动作,并记录打开动作所对应的参数;
针对该步骤,本实施例不对捕获文件打开动作的具体方式进行限定,由于现有的文件打开方式中也会存在捕获文件打开动作的操作,因此可通过现有的实现方式实现。
对于打开动作所对应的参数,本实施例对此不进行具体限定,包括但不限于文件名,申请的权限等参数。记录打开动作所对应的参数,即将打开动作所对应的参数保存到内存中,以备后续根据记录的参数执行打开操作。
203:获取对应的原始文件系统设备对象和原始文件系统分发函数地址;
具体地,文件系统指用于存储文件的磁盘或分区,而文件系统设备对象可以是某个磁盘,或某个分区,不同的文件对应不同的文件系统设备对象,例如,如果待打开的文件位于C磁盘,则可将C磁盘作为该文件对应的文件系统设备对象。而文件系统分发函数用于执行文件打开操作,对于不同的文件系统设备对象,其可以调用多个文件系统分发函数。当文件系统设备对象接收到文件打开请求时,即可调用对应的文件系统分发函数。在本实施例中,针对经过文件过滤驱动捕获并修改后的文件系统设备对象及文件系统分发函数,本实施例将未被文件过滤驱动修改的该文件原本对应的文件系统设备对象称为原始文件系统设备对象,该原始文件系统设备对象调用的文件系统分发函数称为原始文件系统分发函数。
本实施例不对获取原始文件系统设备对象和原始文件系统分发函数地址的方式进行限定。实际应用中,可预先编写用于获取原始文件系统设备对象和原始文件系统分发函数地址的驱动程序,通过该预先编写的驱动程序来获取原始文件系统设备对象和原始文件系统分发函数地址。
由于VPB(Volume Parameter Block,卷参数块)结构中记录了文件系统设备对象,因此,可通过预先编写的驱动程序在记录有文件系统设备对象的VPB结构中查找对应的原始文件系统设备对象。另外,由于预先编写的驱动程序以BOOT方式启动时,此时系统记录的信息都是未经修改过的,且可信的,则驱动程序以BOOT方式启动时获取到的文件系统分发函数地址即为原始文件系统分发函数地址。因此,可以BOOT方式启动预先编写的驱动程序,通过该预先编写的驱动程序获取对应的原始文件系统分发函数地址。
204:直接向原始文件系统设备对象所在的文件系统发送文件打开请求,并由文件系统将文件打开请求传递给原始文件系统分发函数地址所对应的原始文件系统分发函数;
具体地,直接向原始文件系统设备对象所在的文件系统发送文件打开请求时,本实施例不对具体的发送方式进行限定,具体实现时,可使用IoCreateFileSpecifyDeviceObjectHint函数,并以原始文件系统设备对象为参数,将文件打开请求直接发送给原始文件系统设备对象所在的文件系统。
其中,IoCreateFileSpecifyDeviceObjectHint函数为Windows系统自用的已有API函数,通过使用该函数即可将文件打开请求直接发送给原始文件系统设备对象所在的文件系统;当该文件打开请求被发送到原始文件系统设备对象所在的文件系统后,即将触发原始文件系统设备对象调用对应的原始文件系统分发函数,因而由该文件系统将该文件打开请求传递给原始文件系统分发函数地址所对应的原始文件系统分发函数,由该原始文件系统分发函数执行文件打开操作,从而绕开了中间的文件过滤驱动。
205:由原始文件系统分发函数按照替换后的预设的函数地址及记录的参数执行文件打开操作。
针对该步骤,由原始文件系统分发函数按照替换后的预设的函数地址执行文件打开操作时,原来的文件打开流程已经被修改,如图3所示,虚箭头所指的流程为原来的文件打开流程,其存在的NtCreateFile函数被替换为MyNtCreateFile函数,文件打开流程也因此由原来虚箭头所指的流程变为实箭头所指的流程,从而绕过了中间可能存在的文件过滤驱动,避免了过滤驱动截获对文件的访问而引起的对文件进行扫描等不必要的操作,即使安装了多个杀毒软件,通过本实施例提供的方法打开文件时,另一款杀毒软件不会检测到该文件的打开动作,从而不会被激活去扫描文件,因此避免了兼容性问题,也避免了加重系统负担的问题。
另外,由原始文件系统分发函数按照记录的参数执行文件打开操作的目的是为了符合原来的文件打开方式。例如,原来的文件打开动作对应的参数表明其仅具有读权限,则在记录该参数,并根据该参数打开文件时,仍保持其仅具有读权限,从而与原打开文件的权限要求保持一致,满足用户对文件打开的原始需求。
本实施例提供的方法,通过捕获文件打开动作,直接向对应的原始文件系统设备对象所在的文件系统发送文件打开请求,由对应的原始文件系统分发函数进行文件打开操作,实现了对文件过滤驱动的穿透,从而避免了因每次打开文件都进行病毒扫描的不必要操作,且避免了在安装多个杀毒软件时,因重复打开文件进行扫描所造成的系统负担加重问题及兼容性问题。
实施例三
本实施例提供了一种文件打开装置,参见图4,该装置包括:
捕获模块401,用于捕获文件打开动作;
第一获取模块402,用于在捕获模块401捕获到文件打开动作后,获取对应的原始文件系统设备对象;
第二获取模块403,用于在捕获模块401捕获到文件打开动作后,获取对应的原始文件系统分发函数地址;
发送模块404,用于直接向第一获取模块402获取到的原始文件系统设备对象所在的文件系统发送文件打开请求,并将文件打开请求传递给第二获取模块403获取到的原始文件系统分发函数地址所对应的原始文件系统分发函数;
打开模块405,用于由原始文件系统分发函数执行文件打开操作。
进一步地,参见图5,该装置,还包括:
替换模块406,用于搜索32位动态链接库文件的导入表,以预设的函数地址替换导入表中保存的函数地址;
相应地,打开模块405,具体用于由原始文件系统分发函数按照替换模块406替换后的预设的函数地址执行文件打开操作。
进一步地,参见图6,该装置,还包括:
记录模块407,用于记录捕获模块401捕获到的文件打开动作所对应的参数;
相应地,打开模块405,具体用于由原始文件系统分发函数按照记录模块407记录的参数进行文件打开操作。
其中,第一获取模块402,具体用于通过预先编写的驱动程序在记录有文件系统设备对象的VPB结构中查找对应的原始文件系统设备对象。
第二获取模块403,具体用于以BOOT方式启动预先编写的驱动程序,通过预先编写的驱动程序获取对应的原始文件系统分发函数地址。
发送模块404,具体用于使用IoCreateFileSpecifyDeviceObjectHint函数,并以原始文件系统设备对象为参数,将文件打开请求直接发送给原始文件系统设备对象所在的文件系统。
本实施例提供的装置,通过捕获文件打开动作,直接向对应的原始文件系统设备对象所在的文件系统发送文件打开请求,由对应的原始文件系统分发函数进行文件打开操作,实现了对文件过滤驱动的穿透,从而避免了因每次打开文件都进行病毒扫描的不必要操作,且避免了在安装多个杀毒软件时,因重复打开文件进行扫描所造成的系统负担加重问题及兼容性问题。
需要说明的是:上述实施例提供的文件打开装置在打开文件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件打开装置与文件打开方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种文件打开方法,其特征在于,所述方法包括:
捕获文件打开动作,并获取对应的原始文件系统设备对象和原始文件系统分发函数地址;
直接向所述原始文件系统设备对象所在的文件系统发送文件打开请求,并由所述文件系统将所述文件打开请求传递给所述原始文件系统分发函数地址所对应的原始文件系统分发函数,由所述原始文件系统分发函数执行文件打开操作。
2.根据权利要求1所述的方法,其特征在于,所述捕获文件打开动作之前,还包括:
搜索32位动态链接库文件的导入表,以预设的函数地址替换所述导入表中保存的函数地址;
相应地,由所述原始文件系统分发函数执行文件打开操作时,具体包括:
由所述原始文件系统分发函数按照替换后的预设的函数地址执行文件打开操作。
3.根据权利要求1所述的方法,其特征在于,所述捕获文件打开动作之后,还包括:
记录所述文件打开动作所对应的参数;
相应地,由所述原始文件系统分发函数执行文件打开操作时,具体包括:
由所述原始文件系统分发函数按照记录的参数执行文件打开操作。
4.根据权利要求1所述的方法,其特征在于,所述获取对应的原始文件系统设备对象,具体包括:
通过预先编写的驱动程序在记录有文件系统设备对象的卷参数块VPB结构中查找对应的原始文件系统设备对象。
5.根据权利要求1所述的方法,其特征在于,所述获取对应的原始文件系统分发函数地址,具体包括:
以B00T方式启动预先编写的驱动程序,通过所述预先编写的驱动程序获取对应的原始文件系统分发函数地址。
6.根据权利要求1所述的方法,其特征在于,所述直接向所述原始文件系统设备对象所在的文件系统发送文件打开请求,具体包括:
使用IoCreateFileSpecifyDeviceObjectHint函数,并以所述原始文件系统设备对象为参数,将所述文件打开请求直接发送给所述原始文件系统设备对象所在的文件系统。
7.一种文件打开装置,其特征在于,所述装置包括:
捕获模块,用于捕获文件打开动作;
第一获取模块,用于在所述捕获模块捕获到文件打开动作后,获取对应的原始文件系统设备对象;
第二获取模块,用于在所述捕获模块捕获到文件打开动作后,获取对应的原始文件系统分发函数地址;
发送模块,用于直接向所述第一获取模块获取到的原始文件系统设备对象所在的文件系统发送文件打开请求,并由所述文件系统将所述文件打开请求传递给所述第二获取模块获取到的原始文件系统分发函数地址所对应的原始文件系统分发函数;
打开模块,用于由所述原始文件系统分发函数执行文件打开操作。
8.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
替换模块,用于搜索32位动态链接库文件的导入表,以预设的函数地址替换所述导入表中保存的函数地址;
相应地,所述打开模块,具体用于由所述原始文件系统分发函数按照所述替换模块替换后的预设的函数地址执行文件打开操作。
9.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
记录模块,用于记录所述捕获模块捕获到的文件打开动作所对应的参数;
相应地,所述打开模块,具体用于由所述原始文件系统分发函数按照所述记录模块记录的参数进行文件打开操作。
10.根据权利要求7所述的装置,其特征在于,所述第一获取模块,具体用于通过预先编写的驱动程序在记录有文件系统设备对象的卷参数块VPB结构中查找对应的原始文件系统设备对象。
11.根据权利要求7所述的装置,其特征在于,所述第二获取模块,具体用于以BOOT方式启动预先编写的驱动程序,通过所述预先编写的驱动程序获取对应的原始文件系统分发函数地址。
12.根据权利要求7所述的装置,其特征在于,所述发送模块,具体用于使用IoCreateFileSpecifyDeviceObjectHint函数,并以所述原始文件系统设备对象为参数,将所述文件打开请求直接发送给所述原始文件系统设备对象所在的文件系统。
CN201110260036.XA 2011-09-05 2011-09-05 文件打开方法及装置 Active CN102982031B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201110260036.XA CN102982031B (zh) 2011-09-05 2011-09-05 文件打开方法及装置
US14/342,482 US20140207833A1 (en) 2011-09-05 2012-06-14 File opening method, apparatus, and terminal
PCT/CN2012/076874 WO2013034006A1 (zh) 2011-09-05 2012-06-14 文件打开方法、装置及终端
AU2012306979A AU2012306979C1 (en) 2011-09-05 2012-06-14 File opening method, apparatus and terminal
HK13109831.9A HK1182495A1 (zh) 2011-09-05 2013-08-22 文件打開方法及裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110260036.XA CN102982031B (zh) 2011-09-05 2011-09-05 文件打开方法及装置

Publications (2)

Publication Number Publication Date
CN102982031A true CN102982031A (zh) 2013-03-20
CN102982031B CN102982031B (zh) 2015-04-01

Family

ID=47831493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110260036.XA Active CN102982031B (zh) 2011-09-05 2011-09-05 文件打开方法及装置

Country Status (5)

Country Link
US (1) US20140207833A1 (zh)
CN (1) CN102982031B (zh)
AU (1) AU2012306979C1 (zh)
HK (1) HK1182495A1 (zh)
WO (1) WO2013034006A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202290A (zh) * 2016-06-30 2016-12-07 北京金山安全软件有限公司 一种文件的访问方法及终端
US10356237B2 (en) 2016-02-29 2019-07-16 Huawei Technologies Co., Ltd. Mobile terminal, wearable device, and message transfer method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI599905B (zh) * 2016-05-23 2017-09-21 緯創資通股份有限公司 惡意碼的防護方法、系統及監控裝置
CN113220380A (zh) * 2021-05-25 2021-08-06 北京小米移动软件有限公司 本地原生程序的调用方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101435A1 (en) * 2005-10-14 2007-05-03 Check Point Software Technologies, Inc. System and Methodology Providing Secure Workspace Environment
CN101101622A (zh) * 2007-07-10 2008-01-09 北京鼎信高科信息技术有限公司 一种构造透明编码环境的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026402A (en) * 1998-01-07 2000-02-15 Hewlett-Packard Company Process restriction within file system hierarchies
AU3304699A (en) * 1998-02-20 1999-09-06 Storm Systems Llc File system performance enhancement
US6874139B2 (en) * 2000-05-15 2005-03-29 Interfuse Technology Corporation Method and system for seamless integration of preprocessing and postprocessing functions with an existing application program
GB2415517B (en) * 2004-06-24 2010-03-03 Symbian Software Ltd File management in a computing device
US7676508B2 (en) * 2004-11-10 2010-03-09 Microsoft Corporation Method and system for recording and replaying input-output requests issued by a user-mode program
AU2007200606A1 (en) * 2006-03-03 2007-09-20 Pc Tools Technology Pty Limited Scanning files using direct file system access

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101435A1 (en) * 2005-10-14 2007-05-03 Check Point Software Technologies, Inc. System and Methodology Providing Secure Workspace Environment
CN101101622A (zh) * 2007-07-10 2008-01-09 北京鼎信高科信息技术有限公司 一种构造透明编码环境的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
彭菊香: "文件系统过滤层穿透系统设计与实现", 《中国优秀硕士学位论文全文数据库》, no. 5, 31 May 2010 (2010-05-31), pages 20 - 28 *
王兰英等: "基于IRP的Windows设备驱动程序文件操作的实现", 《四川理工学院学报(自然科学版)》, vol. 23, no. 1, 28 February 2010 (2010-02-28), pages 41 - 43 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10356237B2 (en) 2016-02-29 2019-07-16 Huawei Technologies Co., Ltd. Mobile terminal, wearable device, and message transfer method
CN106202290A (zh) * 2016-06-30 2016-12-07 北京金山安全软件有限公司 一种文件的访问方法及终端

Also Published As

Publication number Publication date
AU2012306979A1 (en) 2014-03-27
AU2012306979C1 (en) 2015-10-22
WO2013034006A1 (zh) 2013-03-14
CN102982031B (zh) 2015-04-01
AU2012306979B2 (en) 2015-05-21
HK1182495A1 (zh) 2013-11-29
US20140207833A1 (en) 2014-07-24

Similar Documents

Publication Publication Date Title
US9129058B2 (en) Application monitoring through continuous record and replay
CN109388538B (zh) 一种基于内核的文件操作行为监控方法及装置
CN102054028B (zh) 一种网络爬虫系统实现页面渲染功能的方法
CN103970533B (zh) 屏幕录制的信息记录方法及装置
CN107480527A (zh) 勒索软件的防范方法及系统
US7966490B2 (en) Using mobility tokens to observe malicious mobile code
CN103620606B (zh) 存储检测装置、系统及存储检测方法
CN102982031A (zh) 文件打开方法及装置
CN101944107B (zh) 一种文件管理的方法
Bruschi et al. Diversified process replicæ for defeating memory error exploits
CN101604361A (zh) 一种恶意软件的检测方法及装置
CN101458754B (zh) 一种监控应用程序行为的方法及装置
CN101350053A (zh) 防止网页浏览器被漏洞利用的方法和装置
US9032412B1 (en) Resource allocation based on active folder activity
CN101826048B (zh) 一种打印监控的方法及系统
DE202014011116U1 (de) System zum Bewahren und nachfolgenden Wiederherstellen eines Emulatorzustands
CN102508768A (zh) 应用程序监控方法及装置
DE60304005T2 (de) Änderung von Ladeadressen von ausführbaren Programmodulen
CN110851280A (zh) 一种基于分布式智能边缘计算技术的自动化数据采集方法
CN101236531A (zh) 一种存储装置及其实现自动保护的方法
CN103473350A (zh) 文件处理方法及设备
CN112580066A (zh) 一种数据保护方法及装置
CN103345417A (zh) 一种存储空间回收方法及设备
CN102651036A (zh) 通用、可靠的文件复制操作识别方法
CN111796989B (zh) Linux系统下防止截屏的方法及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1182495

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1182495

Country of ref document: HK