CN102768678A - 文件操作方法及装置 - Google Patents

文件操作方法及装置 Download PDF

Info

Publication number
CN102768678A
CN102768678A CN2012101998228A CN201210199822A CN102768678A CN 102768678 A CN102768678 A CN 102768678A CN 2012101998228 A CN2012101998228 A CN 2012101998228A CN 201210199822 A CN201210199822 A CN 201210199822A CN 102768678 A CN102768678 A CN 102768678A
Authority
CN
China
Prior art keywords
file
layer
penetrate
need
transmitted intensity
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
CN2012101998228A
Other languages
English (en)
Other versions
CN102768678B (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.)
Beijing Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
360 Digital Security Technology Group Co Ltd
Original Assignee
Qizhi Software Beijing 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 Qizhi Software Beijing Co Ltd filed Critical Qizhi Software Beijing Co Ltd
Priority to CN201210199822.8A priority Critical patent/CN102768678B/zh
Publication of CN102768678A publication Critical patent/CN102768678A/zh
Application granted granted Critical
Publication of CN102768678B publication Critical patent/CN102768678B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了文件操作方法及装置,其中,所述方法包括:接收对指定文件进行操作的请求,所述请求中携带有文件的路径以及穿透强度信息;根据所述文件的路径确定所述文件对应的文件系统目标设备对象,并根据预置的文件系统各设备对象的原始地址,确定所述目标设备对象的原始地址;根据所述穿透强度信息确定不需要穿透的层;根据所述不需要穿透的层以及所述原始地址构造I/O请求包,以便依次调用所述不需要穿透的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到所述原始地址处,由所述目标设备对象对经由所述不需要穿透的层处理后的I/O请求包进行处理。通过本发明,能够在通过文件穿透的方式对文件进行操作时,避免出现操作错误。

Description

文件操作方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及文件操作方法及装置。
背景技术
在面对复杂问题的时候,人们往往会采用分而治之的方法分割、缩小问题的范围,这一点在操作系统的设计中亦是如此。例如,Windows操作系统就是借助分层的设计思想来解决复杂的问题。这一做法带来了可移植性、可扩展性等优点,不过,由于在设计理论上存在着安全性缺陷(例如缺乏完整性校验机制等),另一方面也意味着系统存在大量的被篡改可能。以文件系统的设计为例,文件调用栈的分层式结构决定了其调用链上存在多个层,每个层对其上层提供接口,对下层进行调用,文件的调用请求会从最上层开始,经过调用链上的逐层处理,直到到达文件系统的下层设备,并最终确定出文件是保存在磁盘的第多少个扇区、占用多少字节等等,然后返回对应的信息。但是,由于操作系统并不会对调用链的完整性进行校验,这也就意味着,第三方可以任意地向调用链中加入一些层,甚至还可以对已有的层的逻辑进行修改等等,而这种加入层或者修改层逻辑的操作,都使得调用链存在被篡改的风险。
例如,一些包含有病毒等恶意内容的文件为了避免被安全软件检测到,就会通过安装驱动的方式,对系统的文件调用栈的链路进行篡改(增加层或者修改一些层逻辑等),达到对文件调用操作进行劫持的目的,以至于安全软件在调用文件时,获得的数据的准确性得不到保证。例如,安全软件在需要获取文件A的数据对文件A进行检测时,如果链路已经被篡改,则系统实际上返回的却可能是文件B的数据,最终安全软件实际检测数据的也是文件B的数据,只不过安全软件无法知悉该情况,会将其作为文件A的数据来看待。这样,只要文件B是安全的,就可以通过检测,并且安全软件显示的检测结果是“文件A不存在安全威胁”,进而,如果用户信任安全软件的检测结果,对文件A执行了打开或者运行等操作,则可能也会导致用户的系统遭到文件A包含的恶意程序的侵害。
一般而言,操作系统文件调用栈链路如图1所示,在执行文件调用操作时采用如下分层调用的方式:调用者101(例如安全软件等)调用内核接口层102,内核接口层102调用内核执行层103,内核执行层103调用文件对象解析例程104,文件对象解析例程104调用过滤驱动105,顶层过滤驱动逐层调用直至调用到底层过滤驱动106,底层过滤驱动106调用文件系统107,文件系统107调用文件系统下层设备108,等等。其中,调用者101和内核接口层102属于操作系统用户态,内核执行层103、文件对象解析例程104、顶层过滤驱动105、底层过滤驱动106、文件系统107和文件系统下层设备108属于操作系统内核态。
在对文件调用栈的链路进行篡改时,有很多潜在的篡改点,这些篡改点可能包括对用户态的篡改(例如内核接口层的用户态IAT Hook(Import AddressTable Hook,导入表钩挂)/EAT Hook(Export Address Table Hook,导出表钩挂),内核接口层的用户态Inline Hook(内联钩挂)等),也可能包括对内核态的篡改(例如,内核执行层的Native API SSDT Hook(System ServiceDispatch Table Hook,系统服务分派表钩挂)、文件对象解析例程的ObjectParse Routine Hook(对象解析例程钩挂)、顶层过滤驱动a的顶层过滤驱动获取,等等)。
传统的安全软件厂商虽然意识到了文件调用操作被劫持的各种可能性,但是大多只考虑了操作系统用户态的劫持风险,在操作系统内核态的攻防上往往体现出一定的能力缺失。
为了能够避免操作系统内核态被劫持时带来的危害,本发明人提供了“文件穿透”的解决方案(该方案已经作为一件独立的专利另行申请)。所谓的文件穿透是指,假设操作系统中原有的文件调用栈的链路是不安全的,因此,在文件调用请求到来时,另外建立一条新的、可信的链路,通过该新建的链路去获取文件对应的数据。也就是说,文件的调用请求不再经过原有调用栈上内核态的各个层,而是直接通过一条可信的通道到达文件所在的原始地址,可见,相当于在调用文件的过程中,将调用栈中原有的链路作为旁路,形象地讲,就相当于穿透了内核态的各个层,因此简称为文件穿透。
这种文件穿透方案由于使得文件调用请求不再流经内核态的各个层,因此,也就不会遭受内核态劫持,可以保证调用者最终调用到的数据的正确性,进而也保证调用者后续执行的检测等操作的有效性。但是,在实际应用中,通过这种文件穿透的方式对文件进行调用时,有时会出现调用错误,例如无法找到文件的原始地址,或者调用到的数据存在乱码,等等。
因此,迫切需要本领域技术人员解决的技术问题就在于,如何在通过文件穿透的方式对文件进行操作时,避免出现操作错误。
发明内容
本发明提供了文件操作方法及装置,能够在通过文件穿透的方式对文件进行操作时,避免出现操作错误。
本发明提供了如下方案:
一种文件操作方法,包括:
接收对指定文件进行操作的请求,所述请求中携带有文件的路径以及穿透强度信息;
根据所述文件的路径确定所述文件对应的文件系统目标设备对象,并根据预置的文件系统各设备对象的原始地址,确定所述目标设备对象的原始地址;
根据所述穿透强度信息确定不需要穿透的层;
根据所述不需要穿透的层以及所述原始地址构造I/O请求包,以便依次调用所述不需要穿透的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到所述原始地址处,由所述目标设备对象对经由所述不需要穿透的层处理后的I/O请求包进行处理。
可选的,所述根据所述文件的路径确定所述文件对应的文件系统目标设备对象包括:
根据预置的根目录名称与磁盘设备之间的对应关系,确定所述路径中的根目录名称对应的磁盘设备;
根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
可选的,所述根据所述文件的路径确定所述文件对应的文件系统目标设备对象包括:
依据所述文件的路径在对象管理器中查找对应的文件对象解析例程;
通过所述文件对象解析例程确定所述路径中的根目录名称对应的磁盘设备;
根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
可选的,所述请求中携带的穿透强度信息包括需要穿透的层的标识或不需要穿透的层的标识;或者,所述请求中携带的穿透强度信息包括预置的穿透强度级别标识,其中,每个穿透强度级别标识对应着至少一组需要穿透的层的标识或不需要穿透的层的标识。
可选的,所述不需要穿透的层为非自闭的层,所述非自闭的层为穿透之后会造成系统功能性缺失的层。
可选的,还包括:
在初始化过程中,获取当前文件操作链上包括的各个层的唯一性标识信息;
将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前文件操作链上存在的非自闭的层,以便文件操作者在发起文件操作请求时,根据该标记的信息确定所述穿透强度信息。
一种文件操作装置,包括:
请求接收单元,用于接收对指定文件进行操作的请求,所述请求中携带有文件的路径以及穿透强度信息;
目标设备对象确定单元,用于根据所述文件的路径确定所述文件对应的文件系统目标设备对象,并根据预置的文件系统各设备对象的原始地址,确定所述目标设备对象的原始地址;
穿透强度确定单元,用于根据所述穿透强度信息确定不需要穿透的层;
请求包构造单元,用于根据所述不需要穿透的层以及所述原始地址构造I/O请求包,以便依次调用所述不需要穿透的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到所述原始地址处,由所述目标设备对象对经由所述不需要穿透的层处理后的I/O请求包进行处理。
可选的,所述目标设备对象确定单元包括:
第一磁盘设备确定子单元,用于根据预置的根目录名称与磁盘设备之间的对应关系,确定所述路径中的根目录名称对应的磁盘设备;
第一目标设备对象确定子单元,用于根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
可选的,所述目标设备对象确定单元包括:
文件对象解析例程查找子单元,用于依据所述文件的路径在对象管理器中查找对应的文件对象解析例程;
第二磁盘设备确定子单元,用于通过所述文件对象解析例程确定所述路径中的根目录名称对应的磁盘设备;
第二目标设备对象确定子单元,用于根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
可选的,所述请求中携带的穿透强度信息包括需要穿透的层的标识或不需要穿透的层的标识;或者,所述请求中携带的穿透强度信息包括预置的穿透强度级别标识,其中,每个穿透强度级别标识对应着至少一组需要穿透的层的标识或不需要穿透的层的标识。
可选的,所述不需要穿透的层为非自闭的层,所述非自闭的层为穿透之后会造成系统功能性缺失的层。
可选的,还包括:
层标识获取单元,用于在初始化过程中,获取当前文件操作链上包括的各个层的唯一性标识信息;
标记单元,用于将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前文件操作链上存在的非自闭的层,以便文件操作者在发起文件操作请求时,根据该标记的信息确定所述穿透强度信息。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
通过本发明,可以根据文件操作请求中携带的穿透强度信息确定出文件操作链上哪些层是不需要穿透的,然后就可以让构造出的I/O请求包流经这些层。可见,并不是将文件操作链上所有的层都不加区别的全部穿透,而是有选择性的分层穿透,这样,针对一些有可能会对系统造成功能性缺失的层,就可以选择不进行穿透,避免出现操作出错的现象。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是操作系统文件操作执行流的示意图;
图2是本发明实施例提供的方法的流程图;
图3是本发明实施例提供的文件操作执行流的示意图;
图4是本发明实施例提供的另一文件操作执行流的示意图;
图5是本发明实施例提供的装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
首先需要说明的是,本发明的发明人在实现本发明的过程中发现,之所以在通过文件穿透的方式对文件进行操作时,会出现操作错误,是因为,文件穿透的前提是:被穿透的层是“自闭的”,也即穿透这些层时不会对系统造成功能性的缺失。例如某些层就是第三方程序为了监听系统状态而加入的驱动,则穿透这种层时,并不会出错。但是在实际应用中,有些层却不是“自闭的”,例如,假设被穿透的目标是“重定向类驱动”,则如果穿透它则会导致调用者访问一个重定向前的地址,而往往这个地址是实际不存在的,因此会导致无法找到目标文件。或者,还有一类是“加解密类驱动”,这种驱动的作用是对全盘数据进行加解密,如果穿透这类驱动会导致调用者访问到的是未解密的数据,无法得到原始数据,进而产生未知的后果,等等。因此,对于文件操作链路上存在的非自闭的层,不应该穿透。本发明实施例就是在上述分析基础上提出了文件操作方法,以下进行详细地介绍。
参见图2,本发明实施例提供的文件操作方法包括以下步骤:
S201:接收对指定文件进行操作的请求,所述请求中携带有文件的路径以及穿透强度信息;
在本发明实施例中,文件可以包括操作系统(例如Windows)中所支持类型的文件,文件操作具体是指针对文件的原子操作或原子操作的组合,所谓原子操作可以:文件创建、文件读取、文件写入、文件属性设置、文件属性获取、文件指针设置、文件大小获取、文件删除、目录移除、句柄关闭、第一个文件查找、下一个文件查找、文件查找关闭、判断路径是否为目录、判断目标文件是否存在、长路径获取、短路径获取、路径查找、文件复制、文件移动等。例如,文件的杀毒操作即为文件读取、第一个文件查找、下一个文件查找、文件查找关闭、文件移动等原子操作的组合。
为了实现“文件穿透”功能,可以提供一套专用于文件穿透的程序,这套程序可以包括用户态部分以及内核态部分。其中,在用户态部分,可以为调用者提供一些例程(或称函数或接口,是某个系统对外提供的功能接口或服务的统称),这些例程与操作系统中定义的API函数完全兼容,具体可以包括:文件创建例程FSCreateFile、文件读取例程FSReadFile、文件写入例程FSWriteFile、文件属性设置例程FSSetFileAttributes、文件属性获取例程FSGetFileAttributes、文件指针设置例程FSSetFilePointer、增强文件指针设置例程FSSetFilePointerEx、文件大小获取例程FSGetFileSize、文件删除例程FSDeleteFile、目录移除例程FSRemoveDirectory、句柄关闭例程FSCloseHandle、第一个文件查找例程FSFindFirstFile、下一个文件查找例程FSFindNextFile、文件查找关闭例程FSFindClose、增加文件属性获取例程FSGetFileAttributesEx、判断路径是否为目录的例程FSPathIsDirectory、判断目标文件是否存在的例程FSPathFileExists、长路径获取例程FSGetLongPathName、短路径获取例程FSGetShortPathName、路径查找例程FSSearchPath、增强文件大小获取例程FSGetFileSizeEx、文件复制例程FSCopyFile、文件移动例程FSMoveFile和/或增强文件移动例程FSMoveFileEx。所述文件操作接口例程的设置,如调用约定、调用参数和对应的WINDOWS标准API一致。上述每个例程均包括窄字符例程和宽字符例程,例如对于FSCreateFile而言,包括窄字符例程FSCreateFileA和宽字符例程FSCreateFileW。与上述导出例程对应,FILE_IO_CREATE_FILE、FILE_IO_READ_FILE、FILE_IO_WRITE_FILE、FILE_IO_QUERY_FILE、FILE_IO_SET_FILE、FILE_IO_PREPARE_CLOSE等控制码定义了用户态和内核态驱动通信时的统一标识。通信的输入、输出缓冲区可以采用METHOD_BUFFERED方式传输。通信结构兼容32位、64位以及32位兼容模式。
在具体实现时,可以加载这些文件操作接口例程,这样,调用者在发起文件操作请求时,就可以调用穿透程序中提供的文件操作接口例程,这样,穿透程序的内核态部分就可以接收到调用者发出的文件操作请求。以文件创建过程为例,由于FSCreateFileA/FSCreateFileW导出例程严格遵守Windows标准API的定义和参数,因此,调用者可以调用这两个例程,其中,FSCreateFileA可以将输入参数转换为UNICODE类型,FSCreateFileW可以处理畸形文件名(所谓畸形文件就是在操作系统中无法或难以通过正常途径进行建立、查看、删除等操作的文件)、文件路径并实际完成参数转换、控制码通信等。
文件操作请求中包括调用者输入参数,具体的,这种输入参数中可以包括文件路径,例如,某文件b.txt存储在C盘的a文件夹下,则该文件的路径为c:\a\b.txt。
另外,在本发明实施例中,为了在通过文件穿透的方式对文件进行操作时,避免出现操作错误,穿透程序的用户态部分还可以导出SetWorkingMode例程,这个例程可让调用者指定穿透强度,也即调用者在需要对某文件进行操作时,可以通过SetWorkingMode例程指定需要穿透哪些层,或者不需要穿透哪些层,以便实现有选择性的穿透。
其中,不同的用户环境中,根据用户安装的程序的不同,文件操作链路上包含的层会有所不同,因此,为了让调用者能够区分出需要对哪些层进行穿透哪些层不进行穿透,在具体实现时,可以在对文件穿透程序进行初始化时,获取到文件操作链上存在哪些层,同时可以以预先获知的白名单(可以根据经验进行设置,其中保存了哪些层属于非自闭的层)等方式,标识出这些层中是否存在非自闭的层,如果存在,具体哪个或哪些层属于这类非自闭的层,等等。将这些信息提供给调用者,这样,调用者在需要对某文件进行操作时,就可以根据穿透程序提供的上述信息来指定穿透强度。其中,由于每个层一般也具有自己的文件名或者MD5值等能够唯一标识该层的一些信息,因此,在白名单中保存非自闭的层时,可以用这些唯一性标识信息来代表这类的层。相应的,在查询文件操作链上存在哪些层时,同样可以去获取文件操作链上的各个层的唯一性标识信息,然后与白名单中记载的信息进行比对,将匹配成功的结果取出,标记为当前用户环境中存在的非自闭的层即可。当然,如果用户安装了新的驱动等,则可能会导致文件操作链的变化,因此,文件穿透程序在初始化之后,还可以对文件操作链进行监控,如果发生变化,例如增加了新的层时,同样可以获取到该层的唯一性标识信息,然后与白名单中的信息进行比对,如果匹配成功,则可以对文件操作链中包含的非自闭层的信息进行更新。
调用者在文件操作请求中携带穿透强度信息时,可以有多种实现方式。例如,可以在原有的文件操作请求格式基础上扩展出几个字段,用于携带不需要穿透的层。这样,调用者在发起某次文件操作请求时,在根据穿透程序提供的文件操作链上各层的信息,确定出不需要穿透的层之后,就可以直接在扩展的字段中插入不需要穿透的层的标识,这样,穿透程序在接收到调用者的文件操作请求之后,就可以从请求对应的字段中提取出不需要穿透的层的标识。当然,在实际应用中,如果在某链路上,不需要穿透的层的数目大于需要穿透的层的数目,则还可以在请求中携带需要穿透的层的标识,穿透程序在接收到文件操作请求,解析出对应字段上的层标识之后,可以将文件操作链上除了解析出的这些层之外的层作为不需要穿透的层。当然,无论在请求中携带的是需要穿透的层还是不需要穿透的层,都需要预先在穿透程序与调用者之间进行协商,以便穿透程序能够正确地解析出调用者的意图。
或者,在另一种实现方式下,还可以在获取到文件操作链中包含哪些非自闭的层之后,预先对各种可能出现的穿透强度进行穷举,分别给出一个穿透强度级别标识。也就是说,每一个穿透强度级别标识对应着一组不需要穿透的层,穿透程序可以将定义好的各个穿透强度级别标识及其对应的不需要穿透的层信息提供给调用者。这样,调用者在发起一次文件操作请求时,可以首先确定好不需要穿透哪些层,然后可以找到对应的穿透强度级别标识,在文件操作请求中携带该标识即可。可见,在这种方式下,即使不需要穿透的层有多个,也不需要分别携带上各个层的标识,只需要携带一个穿透强度级别标识即可。
例如,文件操作链上包括A、B、C、D、E这几个过滤驱动,其中A、C、E都是非自闭的层,此时可以预先定义八个穿透强度级别。其中,假设第一个穿透强度级别的标识为“穿透强度一”,其对应的穿透强度可以为:A、C、E这几层都不需要穿透;第二个穿透强度级别的标识为“穿透强度二”,其对应的穿透强度可以为:A、C这两层不需要穿透;假设第三个穿透强度级别的标识为“穿透强度三”,其对应的穿透强度可以为:C、E这两层不需要穿透;第四个穿透强度级别的标识为“穿透强度四”,其对应的穿透强度可以为:A、E这两层不需要穿透;第五个穿透强度级别的标识为“穿透强度五”,其对应的穿透强度可以为:A层不需要穿透;第六个穿透强度级别的标识为“穿透强度六”,其对应的穿透强度可以为:C层不需要穿透;第七个穿透强度级别的标识为“穿透强度七”,其对应的穿透强度可以为:E层不需要穿透;第八个穿透强度级别的标识为“穿透强度八”,其对应的穿透强度可以为:所有的层都需要穿透。如果某调用者在发起某次文件操作请求时,需要对A、C这两层不进行穿透,则可以在文件操作请求中携带“穿透强度二”这一穿透强度级别标识;穿透程序在接收到文件操作请求之后,根据预先定义的级别标识与各个不需要穿透的层之间的对应关系,即可获知不需要穿透的层有哪些。当然,在实际应用中,每个穿透强度标识也可以与一组需要穿透的层的标识相对应,这样,穿透程序在接收到文件操作请求时,就可以首先根据请求中携带的穿透强度标识确定出需要穿透的层,然后从链路包含的所有层中除去这些需要穿透的层,就得到不需要穿透的层。
S202:根据所述文件的路径确定所述文件对应的文件系统下层设备中的原始地址;
在操作系统中,对于不同磁盘设备上的文件,需要由对应的文件系统中的函数来进行处理,例如,对于通常所说的C盘、D盘等是由本地磁盘设备对应的文件系统下层设备中的函数进行处理,而对于网络盘等需要由网络磁盘设备对应的文件系统下层设备中的函数进行处理。穿透程序在收到调用者需要对某路径下的文件执行操作时,首先需要根据路径的根目录(也即通常所说的盘符)确定出需要由哪个文件系统下层设备中的对象(或函数)来处理,也即,获知当前待操作的文件对应的文件系统下层设备中的原始地址,以便将该请求发送到该原始地址,由该地址中的对象进行处理。
但在实际应用中,C盘、D盘等盘符表示方式是在操作系统为DOS(DiskOperating System,磁盘操作系统)的时代对磁盘设备的表示方式,随着Windows操作系统的出现,逐渐取替了DOS,到了WindowsNT之后,在操作系统内核中已经不再用C盘、D盘等来标识各个磁盘设备,而是采用其他的方式,例如,原来的C盘在WindowsNT以上的版本中往往是用HarddiskVolume1来表示,等等。但是,在用户态表示文件路径时,仍然沿用了DOS时代的表示方式,也即仍然采用C盘、D盘等。因此,穿透程序在接收到调用者的文件操作请求时,如果操作系统是WindowsNT以上版本,则需要将文件路径中的根目录的表示方式进行转换,这样才能成功确定出当前的文件对应的文件系统下层设备中的原始地址,也即确定出应该将当前的文件发送给哪个文件系统中的函数进行处理。
其中,在对文件路径中的根目录进行转换时,可以有多种实现方式,例如,在一种简单的实现方式下,可以采用“硬编码”的方式预先保存DOS中的盘符名称与磁盘设备之间的对应关系,当收到某文件操作请求时,直接从文件路径中取出盘符,然后根据这种预先保存的对应关系就可以确定出当前的路径对应的是哪个磁盘设备中的文件,进而,就可以根据磁盘设备确定出应该由哪个文件系统的下层设备对其进行处理。
如果被操作的文件都是本地磁盘设备中的文件,则上述硬编码的方式是有效的,但是,在实际应用中,还经常存在一些动态加上来的一个或多个卷(例如通过USB口加上的U盘或者网盘等等),在对这些卷中的文件进行操作时,如果仍然采用上述硬编码的方式进行映射,则由于无法预知动态加上来的卷的盘符名称,而无法成功完成转换。因此,为了应对上述现象,还可以采用对文件路径进行动态分析的方式。具体的,可以依据文件路径在对象管理器中查找对应的文件对象解析例程,然后通过该文件对象解析例程对文件路径进行动态的解析,最终确定文件路径中的根目录名称对应的磁盘设备,进而确定出应该由哪个下层设备对其进行处理。
具体完成上述动态解析及转换过程中,可以预先构建对象管理器查询的OpenPacket结构,基于路径分隔符“\”循环拆解文件路径,例如,文件路径为:c:\a\b.txt,则第一次拆解出的路径段为c:,第二次拆解出的路径段为:c:\a,第三次拆解出的路径段为:\Device\HarddiskVolume1\a\b.txt,即在本发明实施例,是基于递归调用的方式拆解文件路径。对象管理器(ObjectManager)是Windows NT内核的一个基本组件。Windows NT在设计的时候,“面向对象”的设计思想已大行其道,即将原本散落在操作系统各处的资源集中抽象、封装起来,进而为各种内部服务提供一致的访问途径。对象管理器主要用于实现以下功能:(1)提供一种公共的、统一的机制来使用系统资源;(2)将对象保护隔离到操作系统的统一区域中,从而可以做到C2安全等级;(3)提供一种机制来记录进程使用对象的数量,从而可以对系统资源的使用加上限制;(4)建立一套对象命名方案,可以更方便地融合现有的对象。对象管理器共维护了几十种对象类型(Windows 2000是27种对象类型;Windows XP是29种对象类型),常见的如:符号链接(Symbolic Link)、进程(Process)、线程(Thread)、作业(Job)、文件(File)、事件(Event)、定时器(Timer)等等。
对象管理器中维护有拉链式的对象Hash表,基于每次拆解出的路径段搜索对象管理器,若能查找到对应的对象解析例程ParseProcedure,则继续下一次的文件路径拆解,并基于下一次拆解出的路径段和之前已拆解出的路径段搜索对象管理器,若当前的文件路径经过循环解析被完全拆解完毕,则经过搜索对象管理器找到的文件对象解析例程Parse Routine为当前文件路径对应的文件对象解析例程。
例如,“c:\windows\a.exe”这一文件路径在进内核的时候,要加上前缀\??\变成“\??\c:\windows\a.exe”,其中,“\”就代表对象管理器的根目录。解析过程可以包括:
(1)从对象管理器的“\”目录开始搜索,查找到底什么是\??\;
(2)查找结果发现,原来“\??”也对应一个目录,是“\Global??”;
(3)从头开始,查找什么是“\Global??\c:\windows\a.exe”;
(4)查找结果发现,原来“\Global??\c:”这个名称在内核里实际是一个链接,“\Global??\c:”真实的名称应该是“\Device\HarddiskVolume1”;
(5)继续从头开始查找。其中,当查找到“\Device\HarddiskVolume1”(\Device是个目录)之后,由于“HarddiskVolume1”的Type(类型)是Device(设备)了,因此,解析可以到此结束了。
可见,这里相当于是一个递归的过程,最终将文件的路径替换变成“\Device\HarddiskVolume1\windows\a.exe”。
通过以上方式,不仅能发现本地磁盘设备,而且也能发现一些动态加上来的卷。例如,对于文件路径“Z:\NetWorkFile.txt”,同样应该上述的递归解析过程,也可以发现原来这个“Z:\”是代表网络映射的磁盘设备,等等。
总之,通过上述文件路径解析方法能动态解析目标文件路径,对于动态映射的网络磁盘设备驱动器等,通过搜索对象管理器就能动态获得DOS-Style文件路径格式、盘符和文件系统下层目标设备对象之间的对应处理关系。
S203:根据所述穿透强度信息确定不需要穿透的层;
由于调用者的文件操作请求中已经指明了哪些层是需要穿透的或者哪些层是不需要穿透的,因此,可以直接通过对文件操作请求的解析,获知哪些层是不需要穿透的。
S204:根据所述不需要穿透的层以及所述原始地址构造I/O请求,以便依次调用所述不需要穿透的层的接口对所述I/O请求包进行处理,并将处理后I/O请求包发送到所述原始地址处,由所述目标设备对象对经由所述不需要穿透的层处理后的I/O请求包进行处理。
在Windows操作系统家族中,一般都是通过发送IRP(I/O RequestPacket,I/O请求包)来进行与驱动程序的通讯。用来封装IRP的数据结构不仅仅用来描述一个I/O操作的请求本身的内容,还要用来维护这一请求在一系列驱动程序中传递的过程中的相关状态信息。也就是说IRP可以被定义为:是I/O系统为了处理一个I/O请求而用来存储必要信息的地方。当一个线程调用一个I/O服务的时候,I/O管理器构造IRP,用于在I/O系统处理此请求的过程中代表此请求。
因此,在文件穿透的内核态中,同样需要构造一个I/O请求包,在该I/O请求包中填充需要流经的层以及原始地址信息。也就是说,在步骤S102中确定出的原始地址也就是说该I/O请求包需要发送到的目的地址,在步骤S103中确定出的不需要穿透的层也就是该I/O请求包需要流经的层,也即需要调用这些层的接口对该I/O请求包进行处理之后,再发送到原始地址。例如,假设文件操作链上存在A、B、C、D这几层之后到达文件系统下层设备,其中,在某文件操作请求中写明不需要穿透B和D这两个层,则在填充I/O请求包时,会填入B和D这两个层以及原始地址,这样,I/O请求包会首先到达B层,B层处理完成之后,会通过D层的接口调用D层进行处理,在D层处理之后,再发送到原始地址,由文件系统下层设备中的对象进行处理。需要说明的是,在各个不需要穿透的层中需要对I/O请求包进行怎样的处理,是由各个不需要穿透的层自身定义的逻辑来决定的,例如,如果某不需要穿透的层是重定向类的层,则当I/O请求包到达该层之后,可能需要根据重定向信息对文件的路径进行替换操作;如果某不需要穿透的层是加解密类的层,则需要在请求返回时,对文件内容进行解密操作,等等。
其中,I/O请求包中包括从文件操作请求中提取的文件操作信息,当I/O请求包(IPR)被发送至对应的文件系统下层设备的原始地址之后,则由文件系统下层设备依据文件操作信息继续执行对应的文件操作。具体而言,当IRP发送给文件系统的设备对象后,直到写入硬盘,还要经过一系列复杂的处理过程,一般而言,这个请求还要经过卷快照(Volsnap.sys)、卷管理器(Ftdisk.sys)、分区管理器(Partmgr.sys)、磁盘类驱动(disk.sys)、磁盘端口驱动(以IDE系统为例是atapi.sys)、小端口驱动(以Adaptec 1540 SCSI为例是Ahal54x.sys)等一系列的传递,最终由小端口驱动决定写入磁盘或磁带机的相应偏移。卷管理(包括快照)引入了动态的概念,使得windows可以创建多分区卷(比如镜像卷mirrors,条带卷stripes,RAID-5等),该组件会根据实际情况将请求定位到目标卷的某个偏移。分区管理器负责通知即插即用管理器当前有哪些分区,以及他们的状态(创建、删除等)。磁盘类驱动实现了对于所有磁盘共有的功能,例如,SCSI(Small Computer SystemInterface,小型计算机系统接口)Port是针对SCSI总线上的磁盘特性。最后小端口驱动针对某些厂商的特有产品特点,这类驱动往往由厂商自己提供。总的来说,就是每一层根据自己的接口,接收上层传递来的请求,以自己看到的“视图”,找到目标设备的某个扇区偏移,创建、写入、删除数据。
总之,在本发明实施例中,并不是将所有的层不加区别的全部穿透,而是有选择性的分层穿透,这样,针对一些非自闭的层,就可以选择不进行穿透,避免出现操作出错的现象。
为了便于理解,下面结合图3以及图4对本发明实施例进行进一步地介绍。首先,在采用前述“硬编码”的方式对文件路径中的根目录进行转换的情况下进行本发明实施例的分层穿透时,示意图可以如图3所示。也即,调用者的文件操作请求会通过文件穿透程序的驱动接口层发送到内容执行层模拟程序对调用者输入参数进行验证(文件操作请求不再发送到原有的内核接口层),然后针对各个过滤驱动可以执行分层的穿透。在执行分层穿透时,可以选择多种不同的穿透强度,例如,图3中所示的“穿透强度一”相当于不穿透任何过滤驱动;“穿透强度二”相当于穿透了过滤驱动一,而其他的过滤驱动二……过去驱动N并未穿透;“穿透强度三”相当于穿透了全部的过滤驱动,等等。
在采用前述动态解析文件路径中的根目录的情况下,在进行本发明实施例的分层穿透时,示意图可以如图4所示。也即,与图3所示不同的是,需要搜索对象管理器对文件路径进行循环解析得到对象解析例程,然后确定出需要由文件系统的哪个对象对当前的请求进行处理。同时确定出采用怎样的穿透强度,然后构造出I/O请求包,按照不需要穿透的层以及原始地址,进行I/O请求包的发送。在进行分层穿透时,同样可以有多个穿透强度,参见图4中的穿透强度一、穿透强度二及穿透强度三。
需要说明的是,在图3及图4中,都是以“过滤驱动”级的分层穿透为例进行介绍的,但在实际应用中,分层穿透方案并不限于“过滤驱动”级,文件操作链上的所有节点都可以选择进行穿透或者不穿透。
以文件创建过程为例,本发明实施例的完整实现过程可以包括以下步骤:
步骤1:调用者进程发起FSCreateFileA文件创建请求,对于存在“重定向类驱动”、“加解密类驱动”等第三方功能型过滤驱动的情况,调用者可有选择地考虑“是否穿透指定的过滤驱动”,将其携带在文件创建请求中。
步骤2:FSCreateFileA例程转换ANSI(American National StandardsInstitute,美国国家标准学会的标准码)相关参数为UNICODE类型并调用FSCreateFileW例程。
步骤3:FSCreateFileW例程判断系统平台(32位、64位或32位兼容模式)构建结构参数,发送控制码FILE_IO_CREATE_FILE并同步等待返回。
步骤4:FSCreateFileW例程内核部分接收用户态请求,校验输入参数,Captured用户态地址到内核内存空间。
步骤5:FSCreateFileW例程内核部分构建OpenPacket结构,以“\”符为分段,拆解输入的文件路径,拆解出的路径部分搜索对象管理器,查找出对应的ParseProcedure。在循环解析完毕时,便可以找到对象的ParseRoutine例程。
步骤6:Parse Routine例程的实现类似于微软的IopParseDevice例程(模拟实现),其内部会构建并填充IRP请求数据包并发送至不需要穿透的层,并最终发送到系统原始地址处。此时,文件系统操作栈上的其他第三方过滤驱动(其他安全软件、驱动级恶意程序等)被旁路。
步骤7:ObInsertObject例程插入新创建出的对象至对象管理器Hash结构,并得到返回的文件句柄。
步骤8:内核同步调用返回用户态句柄信息以及调用结果。如果调用失败,用户态接口可以设置相应的错误码,这样,调用者线程可以通过GetLastError例程得到详细的错误信息。
与本发明实施例提供的文件操作方法相对应,本发明实施例还提供了一种文件操作装置,参见图5,该装置可以包括:
请求接收单元501,用于接收对指定文件进行操作的请求,所述请求中携带有文件的路径以及穿透强度信息;
目标设备对象确定单元502,用于根据所述文件的路径确定所述文件对应的文件系统目标设备对象,并根据预置的文件系统各设备对象的原始地址,确定所述目标设备对象的原始地址;
穿透强度确定单元503,用于根据所述穿透强度信息确定不需要穿透的层;
请求包构造单元504,用于根据所述不需要穿透的层以及所述原始地址构造I/O请求包,以便依次调用所述不需要穿透的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到所述原始地址处,由所述目标设备对象对经由所述不需要穿透的层处理后的I/O请求包进行处理。
具体实现时,目标设备对象确定单元502可以包括:
第一磁盘设备确定子单元,用于根据预置的根目录名称与磁盘设备之间的对应关系,确定所述路径中的根目录名称对应的磁盘设备;
第一目标设备对象确定子单元,用于根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
为了能够识别出一些动态加上来的卷,目标设备对象确定单元502也可以包括:
文件对象解析例程查找子单元,用于依据所述文件的路径在对象管理器中查找对应的文件对象解析例程;
第二磁盘设备确定子单元,用于通过所述文件对象解析例程确定所述路径中的根目录名称对应的磁盘设备;
第二目标设备对象确定子单元,用于根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
在实际应用中,所述请求中携带的穿透强度信息包括需要穿透的层的标识或不需要穿透的层的标识;或者,所述请求中携带的穿透强度信息包括预置的穿透强度级别标识,其中,每个穿透强度级别标识对应着至少一组需要穿透的层的标识或不需要穿透的层的标识。
其中,所述不需要穿透的层为非自闭的层,所述非自闭的层为穿透之后会造成系统功能性缺失的层。
相应的,该装置还可以包括:
层标识获取单元,用于在初始化过程中,获取当前文件操作链上包括的各个层的唯一性标识信息;
标记单元,用于将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前文件操作链上存在的非自闭的层,以便文件操作者在发起文件操作请求时,根据该标记的信息确定所述穿透强度信息。
总之,通过本发明实施例提供的文件操作装置,可以根据文件操作请求中携带的穿透强度信息确定出文件操作链上哪些层是不需要穿透的,然后就可以让构造出的I/O请求包流经这些层。可见,并不是将文件操作链上所有的层都不加区别的全部穿透,而是有选择性的分层穿透,这样,针对一些有可能会对系统造成功能性缺失的层,就可以选择不进行穿透,避免出现操作出错的现象。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明所提供的文件操作方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种文件操作方法,其特征在于,包括:
接收对指定文件进行操作的请求,所述请求中携带有文件的路径以及穿透强度信息;
根据所述文件的路径确定所述文件对应的文件系统目标设备对象,并根据预置的文件系统各设备对象的原始地址,确定所述目标设备对象的原始地址;
根据所述穿透强度信息确定不需要穿透的层;
根据所述不需要穿透的层以及所述原始地址构造I/O请求包,以便依次调用所述不需要穿透的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到所述原始地址处,由所述目标设备对象对经由所述不需要穿透的层处理后的I/O请求包进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述文件的路径确定所述文件对应的文件系统目标设备对象包括:
根据预置的根目录名称与磁盘设备之间的对应关系,确定所述路径中的根目录名称对应的磁盘设备;
根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
3.根据权利要求1所述的方法,其特征在于,所述根据所述文件的路径确定所述文件对应的文件系统目标设备对象包括:
依据所述文件的路径在对象管理器中查找对应的文件对象解析例程;
通过所述文件对象解析例程确定所述路径中的根目录名称对应的磁盘设备;
根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
4.根据权利要求1所述的方法,其特征在于,所述请求中携带的穿透强度信息包括需要穿透的层的标识或不需要穿透的层的标识;或者,所述请求中携带的穿透强度信息包括预置的穿透强度级别标识,其中,每个穿透强度级别标识对应着至少一组需要穿透的层的标识或不需要穿透的层的标识。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述不需要穿透的层为非自闭的层,所述非自闭的层为穿透之后会造成系统功能性缺失的层。
6.根据权利要求5所述的方法,其特征在于,还包括:
在初始化过程中,获取当前文件操作链上包括的各个层的唯一性标识信息;
将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前文件操作链上存在的非自闭的层,以便文件操作者在发起文件操作请求时,根据该标记的信息确定所述穿透强度信息。
7.一种文件操作装置,其特征在于,包括:
请求接收单元,用于接收对指定文件进行操作的请求,所述请求中携带有文件的路径以及穿透强度信息;
目标设备对象确定单元,用于根据所述文件的路径确定所述文件对应的文件系统目标设备对象,并根据预置的文件系统各设备对象的原始地址,确定所述目标设备对象的原始地址;
穿透强度确定单元,用于根据所述穿透强度信息确定不需要穿透的层;
请求包构造单元,用于根据所述不需要穿透的层以及所述原始地址构造I/O请求包,以便依次调用所述不需要穿透的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到所述原始地址处,由所述目标设备对象对经由所述不需要穿透的层处理后的I/O请求包进行处理。
8.根据权利要求7所述的装置,其特征在于,所述目标设备对象确定单元包括:
第一磁盘设备确定子单元,用于根据预置的根目录名称与磁盘设备之间的对应关系,确定所述路径中的根目录名称对应的磁盘设备;
第一目标设备对象确定子单元,用于根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
9.根据权利要求7所述的装置,其特征在于,所述目标设备对象确定单元包括:
文件对象解析例程查找子单元,用于依据所述文件的路径在对象管理器中查找对应的文件对象解析例程;
第二磁盘设备确定子单元,用于通过所述文件对象解析例程确定所述路径中的根目录名称对应的磁盘设备;
第二目标设备对象确定子单元,用于根据所述根目录名称对应的磁盘设备,确定所述文件对应的文件系统目标设备对象。
10.根据权利要求7所述的装置,其特征在于,所述请求中携带的穿透强度信息包括需要穿透的层的标识或不需要穿透的层的标识;或者,所述请求中携带的穿透强度信息包括预置的穿透强度级别标识,其中,每个穿透强度级别标识对应着至少一组需要穿透的层的标识或不需要穿透的层的标识。
11.根据权利要求7至10任一项所述的装置,其特征在于,所述不需要穿透的层为非自闭的层,所述非自闭的层为穿透之后会造成系统功能性缺失的层。
12.根据权利要求11所述的装置,其特征在于,还包括:
层标识获取单元,用于在初始化过程中,获取当前文件操作链上包括的各个层的唯一性标识信息;
标记单元,用于将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前文件操作链上存在的非自闭的层,以便文件操作者在发起文件操作请求时,根据该标记的信息确定所述穿透强度信息。
CN201210199822.8A 2012-06-14 2012-06-14 文件操作方法及装置 Active CN102768678B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210199822.8A CN102768678B (zh) 2012-06-14 2012-06-14 文件操作方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210199822.8A CN102768678B (zh) 2012-06-14 2012-06-14 文件操作方法及装置

Publications (2)

Publication Number Publication Date
CN102768678A true CN102768678A (zh) 2012-11-07
CN102768678B CN102768678B (zh) 2014-11-05

Family

ID=47096082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210199822.8A Active CN102768678B (zh) 2012-06-14 2012-06-14 文件操作方法及装置

Country Status (1)

Country Link
CN (1) CN102768678B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479826A (zh) * 2017-07-06 2017-12-15 北京北信源软件股份有限公司 一种数据写入方法及装置
CN108427895A (zh) * 2018-03-16 2018-08-21 何小林 磁盘阵列数据保护系统和方法
CN109558752A (zh) * 2018-11-06 2019-04-02 北京威努特技术有限公司 主机白名单机制下一种快速实现文件鉴别的方法
CN110334063A (zh) * 2019-07-15 2019-10-15 深圳前海微众银行股份有限公司 文件系统的操作方法、装置、设备及计算机可读存储介质
CN111176745A (zh) * 2019-12-02 2020-05-19 华迪计算机集团有限公司 基于移动终端的应用实现方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010565A1 (en) * 2002-05-30 2004-01-15 Icube Wireless receiver for receiving multi-contents file and method for outputting data using the same
CN101459697A (zh) * 2009-01-07 2009-06-17 清华大学 一种共享文件的访问方法和装置
CN101464900A (zh) * 2009-01-15 2009-06-24 上海交通大学 Ntfs文件系统下轻量级文件隐藏方法
CN102446252A (zh) * 2011-10-26 2012-05-09 奇智软件(北京)有限公司 一种隔离文件的展示方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010565A1 (en) * 2002-05-30 2004-01-15 Icube Wireless receiver for receiving multi-contents file and method for outputting data using the same
CN101459697A (zh) * 2009-01-07 2009-06-17 清华大学 一种共享文件的访问方法和装置
CN101464900A (zh) * 2009-01-15 2009-06-24 上海交通大学 Ntfs文件系统下轻量级文件隐藏方法
CN102446252A (zh) * 2011-10-26 2012-05-09 奇智软件(北京)有限公司 一种隔离文件的展示方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479826A (zh) * 2017-07-06 2017-12-15 北京北信源软件股份有限公司 一种数据写入方法及装置
CN108427895A (zh) * 2018-03-16 2018-08-21 何小林 磁盘阵列数据保护系统和方法
CN109558752A (zh) * 2018-11-06 2019-04-02 北京威努特技术有限公司 主机白名单机制下一种快速实现文件鉴别的方法
CN109558752B (zh) * 2018-11-06 2021-05-07 北京威努特技术有限公司 主机白名单机制下一种快速实现文件鉴别的方法
CN110334063A (zh) * 2019-07-15 2019-10-15 深圳前海微众银行股份有限公司 文件系统的操作方法、装置、设备及计算机可读存储介质
CN110334063B (zh) * 2019-07-15 2024-05-14 深圳前海微众银行股份有限公司 文件系统的操作方法、装置、设备及计算机可读存储介质
CN111176745A (zh) * 2019-12-02 2020-05-19 华迪计算机集团有限公司 基于移动终端的应用实现方法及装置

Also Published As

Publication number Publication date
CN102768678B (zh) 2014-11-05

Similar Documents

Publication Publication Date Title
US10204224B2 (en) Systems and methods of processing data associated with detection and/or handling of malware
US8881271B2 (en) System and method for forensic identification of elements within a computer system
US8959115B2 (en) Permission tracking systems and methods
CN102768678B (zh) 文件操作方法及装置
CN107004088B (zh) 确定装置、确定方法及记录介质
CN102779244B (zh) 一种文件操作的执行方法及装置
CN110198292B (zh) 域名识别方法和装置、存储介质及电子装置
CN104243214B (zh) 一种数据处理的方法、装置及系统
CN103019778A (zh) 开机启动项的清理方法和装置
US11916937B2 (en) System and method for information gain for malware detection
US10701087B2 (en) Analysis apparatus, analysis method, and analysis program
CN104462985A (zh) bat漏洞的检测方法以及装置
JP2018519575A (ja) テキスト隠蔽に基づいたページジャンプ
CN103679027A (zh) 内核级恶意软件查杀的方法和装置
CN108898012B (zh) 检测非法程序的方法和装置
US20160350550A1 (en) Data blackhole processing method
US9519780B1 (en) Systems and methods for identifying malware
US9646157B1 (en) Systems and methods for identifying repackaged files
CN101950339A (zh) 一种电脑安全防护方法和系统
Grunzweig et al. New wekby attacks use dns requests as command and control mechanism
US20170185767A1 (en) Stand-alone data black hole processing method and computing device
AU2019479339A1 (en) Verification information correction device, verification information correction method and verification information correction program
US7634521B1 (en) Technique for scanning stealthed, locked, and encrypted files
Douglas et al. Processing a 16S rRNA sequencing dataset with the microbiome helper workflow
CN102855433B (zh) 一种文件解锁的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: BEIJING QIHU TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20120926

Owner name: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20120926

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100016 CHAOYANG, BEIJING TO: 100088 XICHENG, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20120926

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: Qizhi software (Beijing) Co.,Ltd.

Address before: The 4 layer 100016 unit of Beijing city Chaoyang District Jiuxianqiao Road No. 14 Building C

Applicant before: Qizhi software (Beijing) Co.,Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20220325

Address after: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee after: Sanliu0 Digital Security Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.

TR01 Transfer of patent right