CN103019765B - 一种文件重定向方法、装置和计算机系统 - Google Patents

一种文件重定向方法、装置和计算机系统 Download PDF

Info

Publication number
CN103019765B
CN103019765B CN201210461020.XA CN201210461020A CN103019765B CN 103019765 B CN103019765 B CN 103019765B CN 201210461020 A CN201210461020 A CN 201210461020A CN 103019765 B CN103019765 B CN 103019765B
Authority
CN
China
Prior art keywords
file
lspdll
loading
dll
type
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.)
Active
Application number
CN201210461020.XA
Other languages
English (en)
Other versions
CN103019765A (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 Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210461020.XA priority Critical patent/CN103019765B/zh
Publication of CN103019765A publication Critical patent/CN103019765A/zh
Application granted granted Critical
Publication of CN103019765B publication Critical patent/CN103019765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明实施例公开了一种文件重定向方法、装置和计算机系统,该方法包括:加载应用程序的配置列表;根据所加载的配置列表的配置信息判断需要加载的LSP DLL文件是否为特定LSP DLL文件;将加载该特定LSP DLL文件的操作替换为加载预定义的LSP DLL文件操作。本发明实施例的方案通过文件重定向技术,使得应用程序避免加载需要被屏蔽的LSP DLL文件,而是加载直通型LSP DLL文件,并保证正常的网络通信。

Description

一种文件重定向方法、装置和计算机系统
技术领域
本发明涉及信息安全技术,具体涉及一种文件重定向方法、装置及计算机系统。
背景技术
LSP(LayeredServiceProvider,网络套接字工具)是Windows平台的通信架构WinSock(WindowsSockets,分层服务提供商)中特有的一个机制,通过可扩展的LSP机制,使得第三方软件开发商可以在应用程序中插入DLL(DynamicLinkLibrary,动态链接库)对TCP/IP数据包进行监听、修改,从而开发出丰富的网络应用,如聊天软件通信加密工具、网络代理软件、网游加速器等。
LSP既可以用来开发正规的应用,病毒或者木马作者也可以利用LSP在用户的操作系统中插入恶意代码,窃取用户信息等。另外,由于LSP注入到系统的绝大多数进程中,串接在应用程序的网络访问操作中,如果代码考虑不周,就会导致应用程序所在的计算机系统不能上网、程序崩溃或卡死等现象。
然而,目前还没有一种有效的措施来及时发现并屏蔽一些有问题的LSPDLL文件。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的文件重定向方法和装置。
依据本发明实施例的一个方面,提供了一种文件重定向方法,包括:加载应用程序的配置信息;根据所加载的配置信息判断加载有问题的LSPDLL文件;将加载有问题的LSPDLL文件的操作替换为加载直通型LSPDLL文件。
可选地,特定LSPDLL文件为需要被屏蔽的LSPDLL文件,所述预定义的LSPDLL文件是直通型DLL文件,直通型DLL文件为通过特定磁盘文件路径加载的DLL文件,以便于在LSP链上层和下层之间透传数据包。
可选地,所述配置列表包括需要屏蔽的LSPDLL文件,以及要屏蔽这些LSPDLL文件的进程。
可选地,根据所述配置列表中的LSPDLL文件的特征信息来判断LSP配置列表数据中是否包括需要被屏蔽的LSPDLL文件。
可选地,所述特征信息为DLL文件的文件名、DLL文件的公司名、原始文件名或者产品名称,所述特征信息从DLL的版本信息中获得。
可选地,替换操作进一步包括:应用程序对API函数进行挂钩处理,指向自定义的函数,其中该API函数是用于加载DLL文件的系统功能函数;当应用程序初始化WinSock时,调用该API函数以加载对应的LSPDLL文件,并将该LSPDLL文件的文件路径传递给该自定义的函数;在该自定义的函数中,应用程序根据配置信息判断该传递来的LSPDLL文件是否为需要被屏蔽的LSPDLL文件,如果是则将加载该LSPDLL文件的操作替换为加载直通型LSPDLL文件操作。如果传递来的LSPDLL文件为需要被屏蔽的LSPDLL文件,则替换LSPDLL文件的文件路径为直通型LSPDLL的文件路径,并传递给挂钩处理之前的API函数,执行调用直通型LSPDLL的文件路径。
可选地,所述替换操作进一步包括:在驱动层挂钩文件操作的系统调用文件打开函数,将其替换为自定义的函数;当应用程序初始化WinSock时,逐个加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件,预先调用自定义函数,在自定义函数中判断要打开的LSPDLL文件是否为待屏蔽LSPDLL文件,如果是,则将该LSPDLL文件的文件路径修替换为直通型LSPDLL文件的文件路径,并将此修改后的文件路径传递给钩挂前的文件打开函数,使系统加载直通型DLL文件。
可选地,所述替换操作进一步包括:
创建文件系统过滤驱动程序,用于对LSPDLL文件的打开操作进行过滤;应用程序初始化WinSock时,逐个加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件,文件系统过滤驱动程序对判断该打开的LSPDLL文件是否为配置列表中需要被屏蔽的LSPDLL文件,是则修改该LSPDLL文件的文件路径为直通型LSPDLL的文件路径,将加载该需要被屏蔽的LSPDLL文件替换为加载直通型DLL文件。
可选地,在替换操作步骤中,当拦截到加载需要被屏蔽的LSPDLL文件的的文件操作时,读取Windows的LSP注册表配置,找到该DLL文件对应的LSP编号,加载直通型DLL文件,并将LSP编号传递给该直通型DLL文件。
可选地,当加载直通型DLL文件后,获取传递的LSP编号,读取操作系统的LSP注册表配置,从而在配置中找到该直通型DLL文件本次在LSP链中的位置,并加载下层LSPDLL文件。
依据本发明实施例的另一方面,提出一种文件重定向装置,包括:配置文件加载装置,用于加载应用程序的配置列表;加载转换装置,根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为特定LSPDLL文件,并将加载该特定LSPDLL文件的操作替换为加载预定义的LSPDLL文件。
依据本发明实施例的再一方面,提出一种计算机系统,包括:配置文件加载装置,用于加载应用程序的配置列表;加载替换装置,根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为特定LSPDLL文件,并将加载该特定LSPDLL文件的操作替换为加载预定义的LSPDLL文件。
本发明实施例通过文件重定向技术,使得应用程序不会加载有问题的LSPDLL文件,而是加载直通型LSPDLL文件,并保证正常的网络通信。
本发明实施例不需要携带微软默认的任何LSP配置,既可以针对系统中的单个LSPDLL文件进行屏蔽,也可以将全部LSPDLL文件都屏蔽,既可以针对单个进程所对应的文件进行LSPDLL文件屏蔽,也可以针对多个进程所对应的文件进行LSPDLL文件屏蔽。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为WinSock框架示意图;
图2为本发明实施例的文件重定向方法流程图;
图3为本发明实施例的文件重定向装置的流程图。
图4示出了本发明实施例通过文件重定向屏蔽特定LSPDLL文件的方法的一具体应用场景实现流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1为WinSock框架示意图。WinSock中包含transportproviderDLL和namespaceproviderDLL两种可扩展的DLL,transportprovider用于网络数据收发,是分层的,理论上支持无限多层,所有的各层上下串在一起形成一个链;namespaceprovider用于网络名称解析,不分层。一般所说的LSP是指transportprovider。本发明实施例既支持transportprovider,也支持namespaceprovider。
参照图1,transportprovider有两个链:TCP链、UDP链。还可以有其它类型的LSP链。
TCP链中从上到下共4层(其中底层的mswsock.dll是操作系统本身所具有的功能)。UDP链包括3层。
右边的3个是namespaceprovider,其中最右边的winrnr.dll是操作系统提供的。虽然现有技术中也有一些能够屏蔽(或者跳过)LSPDLL的机制,例如,Windows系统提供的策略,指定哪些进程加载或者不加载特定类型的LSPDLL,这种技术存在的缺点是:只有Vista及其以上的Windows平台才支持这个特性;只能根据LSP所属的分类来排除,策略太粗放。另外一种机制是彻底抛弃WinSock,越过应用层的WinSock架构,直接向网络驱动发控制码、数据包进行网络通信。这种方法的缺点是:需要了解和驱动层通信的任何细节,这细节一般是非文档化的;在有代理服务器的环境下,需要自行实现代理服务器协议才能正常访问网络;这种方法不会加载第三方的任何LSPDLL文件,在必须要加载某些代理服务器类型的LSPDLL文件才能正常访问网络的环境中,无法正常访问网络。
本发明实施例是利用文件重定向机制,针对Windows系统中的特定或全部进程屏蔽特定或者全部的LSPDLL文件,避免有问题的LSPDLL文件加载到进程中,提高应用程序的稳定性和安全性。
本发明实施例的原理主要是通过携带高稳定性、高兼容性的直通型的LSPDLL文件,利用该直通型的LSPDLL文件替换有问题的LSPDLL文件,从而将该直通型的DLL文件加载到应用程序的进程中。直通型LSPDLL文件用于网络数据的收发,就是发送数据包时直接转发给下层,接收数据包时直接转发给上层,不修改数据包的任何内容。对于数据收发来说,直通型LSPDLL文件就是发送数据包时直接转发给下层,接收数据包时直接转发给上层,不修改数据包的任何内容;对于名字解析来说,不做任何解析。
直通型DLL文件可以通过特定磁盘文件路径加载的DLL文件,以便于在LSP链上层和下层之间透传数据包。LSP属于应用层,所有LSPDLL文件都运行在环3特权级别下,但LSP的行为可以从环3或者环0来进行一定的控制,比如对其文件或注册表操作进行控制。环3(ring3)、环0(ring0)是Intel处理器架构的专用术语,环3是低特权级别,一般是由应用程序使用;环0是最高特权级别,由操作系统内核使用。
由于LSP文件是分层结构,发送网络数据时,网络数据从最上层依次传递至最下层;接收网络数据时,网络数据从最下层依次传递至最上层。每层对应一个DLL文件,从上至下串接成一个链。链是按网络协议类型来划分的,比如TCP链、UDP链等。
普通LSPDLL文件在收到应用程序或者上层LSP下达的网络数据发送请求后,会将相应的网络数据进行修改(比如加密类型的LSP会将网络数据进行加密,代理服务器转发类型的LSP会修改数据包的目的地址甚至重新进行网络数据包封装,防火墙类型的LSP会根据防火墙策略丢弃数据和阻止某些网络数据),然后将修改后的网络数据传递给下层LSP进行发送;普通LSPDLL在接收到下层LSP收到的网络数据后,会进行修改(比如解密等操作),然后将修改后的网络数据返回给上层LSP或应用程序。
图2为本发明实施例的文件重定向方法流程图。以transportprovider为例参照图2,该方法包括以下步骤:
步骤S200,加载应用程序的配置列表。
配置列表中的配置信息包括应用程序的基本信息,例如应用程序的安装目录、当前版本等。在本发明实施例中,配置信息另外还包括:需要屏蔽哪些LSPDLL文件、需要在哪些进程中屏蔽这些LSPDLL文件。
通常需要屏蔽的LSPDLL文件包括:木马或者病毒等恶意程序的LSPDLL文件、网络加速器的LSPDLL文件(这些网络加速器主要是对网游、WEB浏览等应用进行加速的)等。木马或者病毒等恶意程序的LSPDLL文件在WinSock初始化时加载到安全应用软件的进程中后,会对其安全功能造成干扰和破坏,比如阻断安全软件和其云安全中心建立网络连接、直接终止安全软件的进程等;网络加速器的LSPDLL文件则可能导致安全软件崩溃、卡死、无法进行网络访问等,比如“99宿舍加速器”的LSPDLL文件曾经导致很多用户无法正常上网。
步骤S210,根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为特定LSPDLL文件。
上述特定LSPDLL文件为需要被屏蔽的LSPDLL文件,预定义的LSPDLL文件是直通型DLL文件,直通型DLL文件为通过特定磁盘文件路径加载的DLL文件,用于在LSP链上层和下层之间透传数据包。根据配置列表中的LSPDLL文件的特征信息来判断LSP配置列表数据中是否包括需要被屏蔽的LSPDLL文件。特征信息为DLL文件的文件名、DLL文件的公司名、原始文件名或者产品名称,所述特征信息从DLL文件的版本信息中获得。
步骤S220,将加载该特定LSPDLL文件的操作替换为加载预定义的LSPDLL文件的操作。操作系统中用于加载DLL文件的系统功能函数在加载LSPDLL文件时如遇到有问题的LSPDLL文件,则将加载该有问题的LSPDLL文件的操作替换为加载直通型LSPDLL文件的操作。当本发明实施例拦截到加载需要被屏蔽的LSPDLL文件的文件操作时,所述的操作系统中用于加载DLL文件的系统功能函数读取Windows的LSP注册表配置,找到该DLL文件对应的LSP编号,加载直通型DLL文件,并将LSP编号传递给该直通型DLL文件。
WinSock初始化时会读取系统注册表中配置的LSPDLL链,如果操作系统中用于加载DLL文件的系统功能函数加载链中的某个LSPDLL文件失败,则WinSock初始化就失败了,就会导致对应的应用程序或者其所在的计算机系统无法正常访问网络。所以本发明实施例采用了一个稳定、简单的直通型LSPDLL文件来替代存在问题的LSPDLL文件,使得WinSock可以初始化成功,同时又可以避免加载有问题的LSPDLL文件到应用程序的进程中。
根据本发明该方法的一个实施例,步骤S220进一步包括:应用程序利用内嵌挂钩等方式对API函数进行挂钩处理,指向自定义的函数,其中该API函数是用于加载DLL文件的系统功能函数;当应用程序初始化WinSock时,调用该API函数以加载对应的LSPDLL文件,并将该LSPDLL的文件路径传递给该自定义的函数;在该自定义的函数中,应用程序根据配置信息判断该传递来的LSPDLL文件是否为需要被屏蔽的LSPDLL,如果是则将加载该LSPDLL文件的操作替换为加载直通型LSPDLL文件。如果传递来的LSPDLL文件为需要被屏蔽的LSPDLL文件,则替换LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径,并传递给挂钩处理之前的API函数,执行调用直通型LSPDLL文件的文件路径。
该实施例的一具体举例为:在应用层(ring3)对指定或者全部进程进行文件操作API函数(LoadLibrary/CreateFile等)的挂钩处理,具体包括:
a、应用程序首先使用inlinehook(内嵌挂钩)等方式对LoadLibraryExW()这个API函数进行挂钩处理,指向应用程序自定义的函数My_LoadLibraryExW(),LoadLibraryExW()是Windows系统用来加载DLL文件的系统功能函数。
b、当应用程序初始化WinSock时,会调用LoadLibraryExW()API函数加载对应的LSPDLL文件,并将LSPDLL文件的文件路径传递给该函数。
c、由于应用程序对LoadLibraryExW()进行了挂钩处理,于是自定义的函数My_LoadLibraryExW()被该应用程序调用。在该自定义的函数中,应用程序根据配置信息检查传递进来的LSPDLL的特征信息:例如,文件名等,如果和配置信息中要屏蔽的LSPDLL文件的特征符合(特征比如是文件名字符串特征(也可以是产品名称字符串/公司名字符串等特征),如果LSPDLL的文件名符合指定的字符串特征,就认为相匹配,也就是特征符合,文件名字符串特征是人工配置的。),则根据所述的文件名获知文件路径,替换LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径如c:\programfiles\360\lsp.dll,并传递给挂钩处理之前的LoadLibraryExW(),即执行调用LoadLibraryExW(″c:\programfiles\360\lsp.dll″),同时,查询Windows系统的LSP注册表配置,从中获取到该需要替换的LSPDLL文件的编号,将该编号通过进程环境变量等方式传递给即将加载的直通型LSPDLL文件。
d、如果LSPDLL文件的特征和配置信息中的特征不符合,就不替换LSPDLL文件的文件路径。根据本发明该方法的另一实施例,步骤S220进一步包括:
在驱动层挂钩文件操作的系统调用文件打开函数,将其替换为自定义的函数;当应用程序初始化WinSock时,逐个加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件文件,预先调用自定义函数,在自定义函数中判断要打开的LSPDLL文件是否为待屏蔽LSPDLL文件,如果是,则将该LSPDLL文件的文件路径修替换为直通型LSPDLL文件的文件路径,并将此修改后的路径传递给挂钩前的文件打开函数,使系统加载直通型DLL。
本实施例中,以在驱动层挂钩文件操作的系统调用ZwOpenFile(仅以ZwOpenFile为例,如果挂钩ZwCreateFile、ZwMapViewOfSection,流程是类似的),将其替换为自行实现的函数My_ZwOpenFile()。ZwOpenFile是一个内核函数,执行写驱动操作时使用,用于打开一个现有的文件、目录、设备、或卷。当应用程序初始化WinSock时,会调用动态链接库LoadLibrary()逐个加载LSP链上的LSPDLL文件。LoadLibrary()会触发系统调用ZwOpenFile来打开对应的LSPDLL文件。
由于ZwOpenFile已被挂钩,所以My_ZwOpenFile()先被调用。在My_ZwOpenFile()中,对要打开的LSPDLL文件进行特征判断(比如检测文件名字符串是否符合人工配置的正则表达式特征),如果和预先配置好的特征相匹配,则通过LSPDLL文件名获知文件路径,修为直通型LSPDLL文件的文件路径,并将此修改后的文件路径传递给钩挂前的ZwOpenFile(),从而让系统加载直通型DLL文件。如果要打开的LSPDLL文件不符合预先配置的特征,则不修改LSPDLL文件的文件名,直接传递给钩挂前的ZwOpenFile,以完成该LSPDLL文件的加载。
根据本发明该方法的又一实施例,步骤S220进一步包括:创建文件系统过滤驱动程序,用于对LSPDLL文件的打开操作进行过滤;应用程序初始化WinSock时,逐个加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件,文件系统过滤驱动程序判断该打开的LSPDLL文件是否为配置列表中需要被屏蔽的LSPDLL文件,是则修改该LSPDLL文件的文件路径为直通型LSPDLL的文件路径,将加载该需要被屏蔽的LSPDLL文件替换为加载直通型DLL文件。
本发明实施例可以使用文件系统过滤驱动进行DLL文件重定向。其中,Windows的文件系统过滤驱动程序也是分层结构,首先,编写一个文件系统过滤驱动(filesystemfilterdriver)程序,对NTFS、FAT等文件系统的操作进行监控。任何文件操作都会经由此文件系统过滤驱动程序,包括LSPDLL文件的打开操作等。
当应用程序初始化WinSock时,会调用LoadLibrary()逐个加载LSP链上的LSPDLL文件。LoadLibrary()会触发系统调用ZwOpenFile来打开对应的LSPDLL文件,这个打开文件的系统调用会替换为对文件系统的操作,操作类型为IRP_MJ_CREATE,操作参数包含LSPDLL文件的文件名。
对文件系统的所有操作会到达文件系统过滤驱动程序。在该过滤驱动程序的IRP_MJ_CREATE消息的处理函数中,对要打开的LSPDLL文件进行特征判断(比如检测文件名字符串是否符合人工配置的正则表达式特征),如果和预先配置好的特征相匹配,则修改LSPDLL文件的文件名为直通。
当应用程序初始化WinSock时,会调用LoadLibrary()逐个加载LSP链上的LSPDLL文件。LoadLibrary()会触发系统调用ZwOpenFile来打开对应的LSPDLL文件,这个打开文件的系统调用会替换为对文件系统的操作,操作类型为IRP_MJ_CREATE,操作参数包含LSPDLL文件的的文件名。
对文件系统的所有操作会到达文件系统过滤驱动程序。在该过滤驱动程序的IRP_MJ_CREATE消息的处理函数中,对要打开的LSPDLL文件进行特征判断(比如检测文件名字符串是否符合人工配置的正则表达式特征),如果和预先配置好的特征相匹配,则修改LSPDLL文件的文件名为直通型LSPDLL的路径,并将此修改后的路径传递给文件系统驱动程序或者下层的文件系统过滤驱动程序,从而替换为加载直通型DLL。
如果要打开的LSPDLL不符合预先配置的特征,则不修改LSPDLL文件名,直接传递给文件系统驱动程序或者下层的文件系统过滤驱动程序,以完成该LSPDLL的加载。在步骤220,当拦截到加载有问题的LSPDLL的文件操作时,读取Windows的LSP注册表配置,找到该DLL文件对应的唯一LSP编号(编号一般是个整数或者一个GUID串如{5B2272D4-EAC0-4FFB-A2EB-B9EAA78DAEEF})。不加载有问题的LSPDLL文件,而是替换为加载直通型DLL文件,并将LSP编号传递给该直通型DLL文件。
在步骤230,当加载直通型DLL文件后,获取传递的LSP编号,读取操作系统的LSP注册表配置,从而在配置中找到该直通型DLL文件本次在LSP链中的位置,并加载下层LSPDLL文件。
通过上述步骤可以完成进程中整个WinSock的初始化,并且不会加载有问题的LSPDLL文件。
LSP链中的各个LSPDLL文件的加载是WinSock初始化中很重要的一个环节。基于WinSock实现的所有网络通信应用程序都要初始化WinSock才能进行后续的网络数据收发等操作。如果初始化WinSock失败,就无法进行网络通信。所以本发明实施例,可以完成进程中整个WinSock的初始化,并且不会加载有问题的LSPDLL文件,可以保证网络通信功能正常,从而使得应用程序可以正常的进行网络访问。
图3为本发明一实施例的的文件重定向装置结构框图。本发明实施例以DLL为例来说明,因为实际环境中遇到的导致应用程序故障的主要都是DLL。
参照图3,本发明实施例的文件重定向装置包括:
配置列表加载装置300,用于加载应用程序的配置列表。
配置列表中包括需要屏蔽哪些LSPDLL文件以及需要在哪些进程中屏蔽这些LSPDLL文件。
加载替换装置310,用于将程序加载有问题的LSPDLL文件的操作替换为加载直通型LSPDLL文件的操作。
加载转换装置310,用于根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为特定LSPDLL文件,并将加载该特定LSPDLL文件的操作替换为加载预定义的LSPDLL文件。
即加载转换装置310用于实现文件重定向,也就是将程序加载有问题的LSPDLL文件的操作替换为加载直通型LSPDLL文件的操作。
上述特定LSPDLL文件是指需要被屏蔽的LSPDLL文件,预定义的LSPDLL文件是直通型DLL文件,直通型DLL文件为通过特定磁盘文件路径加载的DLL文件,以便于通过所述直通型DLL文件为在LSP链上层和下层之间透传数据包。
加载转换装置310根据所述配置列表中的LSPDLL文件的特征信息来判断LSP配置列表数据中是否包括需要被屏蔽的LSPDLL文件。特征信息为DLL文件的文件名、DLL文件的公司名、原始文件名或者产品名称,所述特征信息可以从DLL的版本信息中获得。
加载转换装置310进一步包括程序创建单元311、挂钩处理单元312以及加载执行单元313。
在其中一实施例中,挂钩处理单元312用于通过应用程序对API函数进行挂钩处理,指向自定义的函数,其中该API函数是用于加载DLL文件的系统功能函数。
加载执行单元313,用于当应用程序初始化WinSock时,调用该API函数以加载对应的LSPDLL文件,并将该LSPDLL文件的文件路径传递给该自定义的函数,在该自定义的函数中,利用应用程序根据配置信息判断该传递来的LSPDLL文件是否为需要被屏蔽的LSPDLL文件,如果是则将加载该LSPDLL文件的操作替换为加载直通型LSPDLL文件。
加载执行单元313,判断如果传递来的LSPDLL文件为需要被屏蔽的LSPDLL文件,则替换LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径,并传递给挂钩处理之前的API函数,执行调用直通型LSPDLL文件的文件路径。
在另一实施例中,挂钩处理单元312,用于在驱动层挂钩文件操作的系统调用文件打开函数,将其替换为自定义的函数;
加载执行单元313,用于当应用程序初始化WinSock时,逐个加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件,预先调用自定义函数,在自定义函数中判断要打开的LSPDLL文件是否为待屏蔽LSPDLL文件,如果是,则将该LSPDLL文件的文件路径替换为直通型LSPDLL文件的文件路径,并将此修改后的路径传递给钩挂前的文件打开函数,使系统加载直通型DLL文件。
在再一实施例中,程序创建单元311用于创建文件系统过滤驱动程序,用于对LSPDLL文件的打开操作进行过滤;
加载执行单元313,用于在应用程序初始化WinSock时,逐个加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件,文件系统过滤驱动程序对判断该打开的LSPDLL文件是否为配置列表中需要被屏蔽的LSPDLL文件,是则修改该LSPDLL文件名或文件路径为直通型LSPDLL的文件名或文件路径,将加载该需要被屏蔽的LSPDLL文件替换为加载直通型DLL文件。
加载转换装置在当拦截到加载有问题的LSPDLL文件的文件操作时,读取Windows的LSP注册表配置,找到该DLL文件对应的唯一LSP编号(编号一般是个整数或者一个GUID串如{5B2272D4-EAC0-4FFB-A2EB-B9EAA78DAEEF}),不加载有问题的LSPDLL文件,而是替换为加载直通型DLL文件,并将LSP编号传递给该直通型DLL文件。直通型DLL文件被加载后,获取传递过来的直通型DLL文件的LSP编号,读取Windows的LSP注册表配置,从而在配置中找到本次在LSP链中的位置,并加载下层LSPDLL文件。
本发明的文件重定向装置可以应用于计算机系统安全软件或者是其他任何计算机系统软件。
下面是本发明实施例方案的一个具体应用举例,仍以transportprovider为例。
图4为该具体应用的流程图。参照图4,在步骤S410,应用程序启动,从所在的Windows系统的LSP注册表中读取到例如4个特定编号的DLL。DLL加载时,上层LSPDLL文件负责加载下层LSPDLL文件;发送网络数据时,上层LSPDLL文件将要发送的网络数据传递给下层LSPDLL文件;接收网络数据时,下层LSPDLL文件将接收到的网络数据传递给上层DLL文件。
在步骤S420,根据应用程序的配置信息判断所读取的若干个LSP链是否包含了要被屏蔽的链,其中判断出要屏蔽TSFilter.dll这个容易导致程序崩溃的DLL文件,应用程序自带的直通型DLL文件的文件路径是c:\programfiles\360\lsp.dll。通常需要屏蔽的LSPDLL文件包括:破坏安全软件功能的木马或者病毒等恶意程序的LSPDLL文件、导致应用程序崩溃/卡死/无法连网的LSPDLL文件。
在步骤S430,应用程序启动文件操作的API挂钩或者内核挂钩/过滤。
在步骤S440,当应用程序进行TCP网络通信,首先会触发TCP链的初始化。ws2_32.dll会加载该链顶部的LSP,即TSFilter.dll,这个DLL文件加载操作被挂钩所拦截。文件操作拦截函数检测到需要替换TSFilter.dll,替换为加载直通型DLLc:\programfiles\360\lsp.dll,并将TSFilter.dll在此链中的编号1019传递给该加载的直通型DLL。C:\programfiles\360\lsp.dll被加载后,获取到LSP顶部的编号,查找Windows的LSP注册表配置,发现自己本次所在的链的下层是Engine.dll,开始加载Engine.dll,而Engine.dll又会加载其下层的mswsock.dll。至此完成整个TCP链的初始化。UDP链的初始化也是是类似的。最终所有的TSFilter.dll都被替换成了c:\programfiles\360\lsp.dll。应用程序不会加载TSFilter.dll,并且网络通信正常。
本发明实施例还公开了一种计算机系统,其中,包括:计算机可读介质,中央处理单元,计算机驱动程序,操作系统,其中,
配置列表加载装置300,用于响应在中央处理单元的指令操作,通过计算机可读介质加载应用程序的配置列表;
加载转换装置310,用于在操作系统中,根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为特定LSPDLL文件,并将加载该特定LSPDLL文件的操作替换为加载预定义的LSPDLL文件。
本发明实施例由于既可以屏蔽指定的LSPDLL文件,也可以屏蔽Windows系统中的全部LSPDLL文件,既可以屏蔽指定进程中的LSPDLL文件,也可以屏蔽所有进程中的LSPDLL文件,也可以实现对于需要屏蔽DLL的进程显示的是直通型DLL的路径,而其他进程显示的是LSPDLL的原始路径,从而允许应用程序在保证网络通信功能正常的前提下提高自身的稳定性和安全性,带来好的用户体验。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明实施例的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的通过文件重定向屏蔽特定LSPDLL的装置中的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序应用程序)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明实施例进行说明而不是对本发明实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本文公开了A1、一种文件重定向方法,其特征在于,包括:加载应用程序的配置列表;根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为特定LSPDLL文件;若是,则将加载该特定LSPDLL文件的操作替换为加载预定义的LSPDLL文件操作。A2、如A1所述的方法,其特征在于,所述特定LSPDLL文件为需要被屏蔽的LSPDLL文件,所述预定义的LSPDLL文件是直通型DLL文件,直通型DLL文件为通过特定磁盘文件路径加载的DLL文件,用于在LSP链上层和下层之间透传数据包。A3、如A2所述的方法,其特征在于,所述配置列表包括需要屏蔽的LSPDLL,以及所述需要屏蔽的LSPDLL所对应的进程信息。A4、根据A3所述的方法,包括:根据所述配置列表中的LSPDLL文件的特征信息来判断LSP配置列表数据中是否包括需要被屏蔽的LSPDLL文件。A5、根据A4所述的方法,其特征在于,所述特征信息为DLL文件的文件名、DLL文件的公司名、原始文件名或者产品名称,所述特征信息从DLL文件的版本信息中获得。A6、如A3所述的方法,其特征在于,替换操作进一步包括:在应用层对执行文件操作的API函数进行挂钩处理,当应用程序初始化WinSock时,调用该API函数以加载对应的LSPDLL文件,并将该LSPDLL文件的文件路径传递给该自定义的函数;在该自定义的函数中,应用程序根据配置信息判断该传递来的LSPDLL文件是否为需要被屏蔽的LSPDLL文件,如果是则将加载该LSPDLL文件的操作替换为加载直通型LSPDLL文件。A7、如A6所述的方法,其特征在于,替换操作进一步包括:如果传递来的LSPDLL文件为需要被屏蔽的LSPDLL文件,则替换LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径,并传递给挂钩处理之前的API函数,执行调用直通型LSPDLL文件的文件路径。A8、如A3所述的方法,其特征在于,所述替换操作进一步包括:在驱动层用于在驱动层挂钩文件操作的系统调用文件打开函数,将其替换为自定义的函数;将该LSPDLL文件路径修替换为直通型LSPDLL文件的文件路径,并将此修改后的路径传递给钩挂前的文件打开函数,使系统加载直通型DLL文件。A9、如A3所述的方法,其特征在于,所述替换操作进一步包括:创建文件系统过滤驱动程序,用于对LSPDLL文件的打开操作进行过滤;文件系统过滤驱动程序对判断该打开的LSPDLL文件是否为配置列表中需要被屏蔽的LSPDLL文件,是则修改该LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径,将加载该需要被屏蔽的LSPDLL文件替换为加载直通型DLL文件。A10、如A6-A9任一项所述的方法,其特征在于,在替换操作步骤中,当拦截到加载需要被屏蔽的LSPDLL文件的文件操作时,读取Windows的LSP注册表配置,获取该DLL文件对应的LSP编号,加载直通型DLL文件,并将LSP编号传递给该直通型DLL文件。A11、如A10所述的方法,其特征在于,该方法进一步包括:当加载直通型DLL文件后,获取传递的LSP编号,读取操作系统的LSP注册表配置,从而在配置中找到该直通型DLL文件本次在LSP链中的位置,并加载下层LSPDLL文件。
本文公开了B12、一种文件重定向装置,其特征在于,包括:配置文件加载装置,用于加载应用程序的配置列表;加载转换装置,根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为特定LSPDLL文件,并将加载该特定LSPDLL文件的操作替换为加载预定义的LSPDLL文件。B13、如B12所述的文件重定向装置,其特征在于,所述特定LSPDLL文件为需要被屏蔽的LSPDLL文件,所述预定义的LSPDLL文件是直通型DLL文件,直通型DLL文件为通过特定磁盘文件路径加载的DLL文件,以便于通过所述直通型DLL文件在LSP链上层和下层之间透传数据包。B14、如B13所述的文件重定向装置,其特征在于,所述配置列表包括需要屏蔽的LSPDLL文件,以及要屏蔽这些LSPDLL文件的进程。B15、根据B14所述的文件重定向装置,包括:根据所述配置列表中的LSPDLL文件的特征信息来判断LSP配置列表数据中是否包括需要被屏蔽的LSPDLL文件。B16、根据B15所述的文件重定向装置,其特征在于,所述特征信息为DLL文件的文件名、DLL文件的公司名、原始文件名或者产品名称,所述特征信息从DLL文件的版本信息中获得。B17、如B14所述的文件重定向装置,其特征在于,加载转换装置进一步包括:挂钩处理单元,用于对执行文件操作的API函数进行挂钩处理,指向自定义的函数,其中该API函数是用于加载DLL文件的系统功能函数;加载执行单元,用于当应用程序初始化WinSock时,调用该API函数以加载对应的LSPDLL文件,并将该LSPDLL文件的文件路径传递给该自定义的函数,根据配置信息判断该传递来的LSPDLL文件是否为需要被屏蔽的LSPDLL文件,如果是则将加载该LSPDLL文件的操作替换为加载直通型LSPDLL文件。B18、如B17所述的文件重定向装置,其特征在于,加载转换装置判断如果传递来的LSPDLL文件为需要被屏蔽的LSPDLL文件,则替换LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径,并传递给挂钩处理之前的API函数,执行调用直通型LSPDLL文件的文件路径。B19、如B14所述的文件重定向装置,其特征在于,加载转换装置进一步包括:挂钩处理单元,用于在驱动层挂钩文件操作的系统调用文件打开函数,将其替换为自定义的函数;加载执行单元,当应用程序初始化WinSock时,加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件,预先调用自定义函数,判断要打开的LSPDLL文件是否为待屏蔽LSPDLL文件,如果是,则将该LSPDLL文件路径修替换为直通型LSPDLL文件的文件路径,并将此修改后的路径传递给钩挂前的文件打开函数,使系统加载直通型DLL。B20、如B14所述的文件重定向装置,其特征在于,加载转换装置进一步包括:程序创建单元,用于创建文件系统过滤驱动程序,用于对LSPDLL文件的打开操作进行过滤;加载执行单元,用于在应用程序初始化WinSock时,加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件,如果该打开的LSPDLL文件是配置列表中需要被屏蔽的LSPDLL文件,则修改该LSPDLL文件的文件名或文件路径为直通型LSPDLL文件的文件名或文件路径,将加载该需要被屏蔽的LSPDLL文件替换为加载直通型DLL。B21、如B17-B20任一项所述的文件重定向装置,其特征在于,当拦截到加载需要被屏蔽的LSPDLL文件的文件操作时,加载转换装置读取Windows的LSP注册表配置,找到该DLL文件对应的LSP编号,加载直通型DLL文件,并将LSP编号传递给该直通型DLL文件。B22、如B21所述的文件重定向装置,其特征在于,加载转换装置在当加载直通型DLL文件后,获取传递的LSP编号,读取操作系统的LSP注册表配置,从而在配置中找到该直通型DLL文件在LSP链中的位置,并加载下层LSPDLL文件。
本文公开了C23、一种计算机系统,其中,包括:计算机可读介质,中央处理单元,计算机驱动程序,操作系统,其中,配置列表加载装置,用于加载应用程序的配置列表;加载转换装置,根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为特定LSPDLL文件,并将加载该特定LSPDLL文件的操作替换为加载预定义的LSPDLL文件。

Claims (16)

1.一种文件重定向方法,其特征在于,包括:
加载应用程序的配置列表,所述配置列表包括需要被屏蔽的LSPDLL文件,以及所述需要被屏蔽的LSPDLL所对应的进程信息;
根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为所述需要被屏蔽的LSPDLL文件;若是,则将加载该需要被屏蔽的LSPDLL文件的操作替换为加载直通型DLL文件操作,其中,直通型DLL文件为通过特定磁盘文件路径加载的DLL文件,用于在LSP链上层和下层之间透传数据包。
2.根据权利要求1所述的方法,包括:根据所述配置列表中的LSPDLL文件的特征信息来判断LSP配置列表数据中是否包括需要被屏蔽的LSPDLL文件。
3.根据权利要求2所述的方法,其特征在于,所述特征信息为DLL文件的文件名、DLL文件的公司名、原始文件名或者产品名称,所述特征信息从DLL文件的版本信息中获得。
4.如权利要求1所述的方法,其特征在于,替换操作进一步包括:在应用层对执行文件操作的API函数进行挂钩处理,当应用程序初始化WinSock时,调用该API函数以加载对应的LSPDLL文件,并将该LSPDLL文件的文件路径传递给自定义的函数;在该自定义的函数中,应用程序根据配置信息判断该传递来的LSPDLL文件是否为需要被屏蔽的LSPDLL文件,如果是则将加载该LSPDLL文件的操作替换为加载直通型LSPDLL文件。
5.如权利要求4所述的方法,其特征在于,替换操作进一步包括:如果传递来的LSPDLL文件为需要被屏蔽的LSPDLL文件,则替换LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径,并传递给挂钩处理之前的API函数,执行调用直通型LSPDLL文件的文件路径。
6.如权利要求1所述的方法,其特征在于,所述替换操作进一步包括:
在驱动层用于在驱动层挂钩文件操作的系统调用文件打开函数,将其替换为自定义的函数;将该LSPDLL文件路径修替换为直通型LSPDLL文件的文件路径,并将此修改后的路径传递给钩挂前的文件打开函数,使系统加载直通型DLL文件。
7.如权利要求1所述的方法,其特征在于,所述替换操作进一步包括:
创建文件系统过滤驱动程序,用于对LSPDLL文件的打开操作进行过滤;
文件系统过滤驱动程序对判断该打开的LSPDLL文件是否为配置列表中需要被屏蔽的LSPDLL文件,是则修改该LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径,将加载该需要被屏蔽的LSPDLL文件替换为加载直通型DLL文件。
8.如权利要求4-7任一项所述的方法,其特征在于,在替换操作步骤中,当拦截到加载需要被屏蔽的LSPDLL文件的文件操作时,读取Windows的LSP注册表配置,获取该DLL文件对应的LSP编号,加载直通型DLL文件,并将LSP编号传递给该直通型DLL文件。
9.如权利要求8所述的方法,其特征在于,该方法进一步包括:当加载直通型DLL文件后,获取传递的LSP编号,读取操作系统的LSP注册表配置,从而在配置中找到该直通型DLL文件本次在LSP链中的位置,并加载下层LSPDLL文件。
10.一种文件重定向装置,其特征在于,包括:
配置文件加载装置,用于加载应用程序的配置列表,所述配置列表包括需要屏蔽的LSPDLL文件,以及要屏蔽这些LSPDLL文件的进程;
加载转换装置,根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为所述需要被屏蔽的LSPDLL文件,并将加载该需要被屏蔽的LSPDLL文件的操作替换为加载直通型DLL文件,其中,直通型DLL文件为通过特定磁盘文件路径加载的DLL文件,以便于通过所述直通型DLL文件在LSP链上层和下层之间透传数据包。
11.根据权利要求10所述的文件重定向装置,包括:根据所述配置列表中的LSPDLL文件的特征信息来判断LSP配置列表数据中是否包括需要被屏蔽的LSPDLL文件。
12.根据权利要求11所述的文件重定向装置,其特征在于,所述特征信息为DLL文件的文件名、DLL文件的公司名、原始文件名或者产品名称,所述特征信息从DLL文件的版本信息中获得。
13.如权利要求10所述的文件重定向装置,其特征在于,加载转换装置进一步包括:
挂钩处理单元,用于对执行文件操作的API函数进行挂钩处理,指向自定义的函数,其中该API函数是用于加载DLL文件的系统功能函数;
加载执行单元,用于当应用程序初始化WinSock时,调用该API函数以加载对应的LSPDLL文件,并将该LSPDLL文件的文件路径传递给该自定义的函数,根据配置信息判断该传递来的LSPDLL文件是否为需要被屏蔽的LSPDLL文件,如果是则将加载该LSPDLL文件的操作替换为加载直通型LSPDLL文件。
14.如权利要求13所述的文件重定向装置,其特征在于,加载转换装置判断如果传递来的LSPDLL文件为需要被屏蔽的LSPDLL文件,则替换LSPDLL文件的文件路径为直通型LSPDLL文件的文件路径,并传递给挂钩处理之前的API函数,执行调用直通型LSPDLL文件的文件路径。
15.如权利要求10所述的文件重定向装置,其特征在于,加载转换装置进一步包括:
挂钩处理单元,用于在驱动层挂钩文件操作的系统调用文件打开函数,将其替换为自定义的函数;
加载执行单元,当应用程序初始化WinSock时,加载LSP链上的LSPDLL文件,打开对应的LSPDLL文件,预先调用自定义函数,判断要打开的LSPDLL文件是否为待屏蔽LSPDLL文件,如果是,则将该LSPDLL文件路径修替换为直通型LSPDLL文件的文件路径,并将此修改后的路径传递给钩挂前的文件打开函数,使系统加载直通型DLL。
16.一种计算机系统,其中,包括:计算机可读介质,中央处理单元,计算机驱动程序,操作系统,其中,还包括:
配置列表加载装置,用于加载应用程序的配置列表,所述配置列表包括需要屏蔽的LSPDLL文件,以及要屏蔽这些LSPDLL文件的进程;
加载转换装置,根据所加载的配置列表中的配置信息判断需要加载的LSPDLL文件是否为所述需要被屏蔽的LSPDLL文件,并将加载该所述需要被屏蔽的LSPDLL文件的操作替换为加载直通型DLL文件,其中,直通型DLL文件为通过特定磁盘文件路径加载的DLL文件,以便于通过所述直通型DLL文件在LSP链上层和下层之间透传数据包。
CN201210461020.XA 2012-11-15 2012-11-15 一种文件重定向方法、装置和计算机系统 Active CN103019765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210461020.XA CN103019765B (zh) 2012-11-15 2012-11-15 一种文件重定向方法、装置和计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210461020.XA CN103019765B (zh) 2012-11-15 2012-11-15 一种文件重定向方法、装置和计算机系统

Publications (2)

Publication Number Publication Date
CN103019765A CN103019765A (zh) 2013-04-03
CN103019765B true CN103019765B (zh) 2016-08-03

Family

ID=47968399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210461020.XA Active CN103019765B (zh) 2012-11-15 2012-11-15 一种文件重定向方法、装置和计算机系统

Country Status (1)

Country Link
CN (1) CN103019765B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530552B (zh) * 2013-09-29 2016-08-17 广州华多网络科技有限公司 Native API函数重构方法及装置
CN103634311B (zh) * 2013-11-26 2016-01-20 腾讯科技(深圳)有限公司 安全防护方法及装置、终端
CN103914656A (zh) * 2014-03-25 2014-07-09 安一恒通(北京)科技有限公司 避免被恶意软件监控的方法和装置
CN106022100A (zh) * 2016-05-17 2016-10-12 北京金山安全软件有限公司 一种拦截恶意程序安装的方法、装置及电子设备
CN106202290A (zh) * 2016-06-30 2016-12-07 北京金山安全软件有限公司 一种文件的访问方法及终端
CN106407800A (zh) * 2016-09-20 2017-02-15 腾讯科技(深圳)有限公司 一种hook的方法及终端设备
CN112328313B (zh) * 2020-11-09 2023-07-14 中国船舶重工集团公司第七0七研究所九江分部 一种应用于嵌入式软件的通用系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1987797A (zh) * 2005-12-23 2007-06-27 国际商业机器公司 避免软件冲突的方法和系统
CN102520944A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 Windows应用程序虚拟化的实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1987797A (zh) * 2005-12-23 2007-06-27 国际商业机器公司 避免软件冲突的方法和系统
CN102520944A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 Windows应用程序虚拟化的实现方法

Also Published As

Publication number Publication date
CN103019765A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN102999354B (zh) 文件加载方法和装置
CN103019765B (zh) 一种文件重定向方法、装置和计算机系统
Sarkar et al. Android application development: a brief overview of android platforms and evolution of security systems
CN102981874B (zh) 计算机处理系统和注册表重定向方法
Drake et al. Android hacker's handbook
US11314565B2 (en) Method and system for application virtualization that includes resource access control
CN105427096B (zh) 支付安全沙箱实现方法及系统与应用程序监控方法及系统
CN105574411B (zh) 一种动态脱壳方法、装置和设备
JP5420734B2 (ja) オブジェクトへの制御されたアクセスを有するソフトウェアシステム
CN102932329B (zh) 一种对程序的行为进行拦截的方法、装置和客户端设备
JP5478513B2 (ja) ブラウザベースのアタックに対するウェブコンテンツインスツルメンテーションのためのセキュリティポリシーを構築する方法及び装置
US20180157524A1 (en) Method and system for application virtualization that includes machine learning
CN104539584B (zh) 浏览器防注入方法、浏览器客户端和装置
NZ539358A (en) a software facility for testing and patching installed computer program code
CN109684830A (zh) 一种安卓应用的广播的代理处理方法和装置
US20070169065A1 (en) Computer program with metadata management function
CN104517054A (zh) 一种检测恶意apk的方法、装置、客户端和服务器
CN109255235B (zh) 基于用户态沙箱的移动应用第三方库隔离方法
CN113138836B (zh) 一种使用基于Docker容器的防逃逸系统的防逃逸方法
CN110188574B (zh) 一种Docker容器的网页防篡改系统及其方法
CN106355049A (zh) 一种加固安卓安装包的动态链接库so文件的方法和装置
Goues et al. Moving target defenses in the helix self-regenerative architecture
Fleischer et al. Memory corruption attacks within Android TEEs: a case study based on OP-TEE
CN106096394A (zh) 一种安卓应用的广告拦截方法和装置
Kim et al. {FuzzOrigin}: Detecting {UXSS} vulnerabilities in browsers through origin fuzzing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220808

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY 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.