进程间通信拦截方法及装置的制造方法

文档序号:9453388阅读:510来源:国知局
进程间通信拦截方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机软件安全应用技术领域,尤其涉及一种进程间通信拦截方法及
目.0
【背景技术】
[0002]随着电子文档加密的广泛应用,越来越多的公司注重数据的安全性,电子文档使用透明加密技术或主动加密技术来保护文件的安全。
[0003]目前这两种加密方式都有一个共同的问题,当用户双击打开一个文件时,应用程序就会首先查找当前系统是否已经存在一个相同的进程,如果存在就使用进程间通信技术通知已有进程去打开文件,这样就会出现同一进程打开多个文件的问题,后续对文件的权限控制将不能精确的控制。此问题导致不能精确控制用户使用windows剪切版,即用户可以将加密文件的内容复制到明文文件内,这就造成了数据泄漏。
[0004]鉴于此,如何防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件成为目前需要解决的技术问题。

【发明内容】

[0005]为解决上述的技术问题,本发明提供一种进程间通信拦截方法及装置,能够防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件,从而使后续权限控制可以对进程进行更加精确的控制。
[0006]第一方面,本发明提供一种进程间通信拦截方法,包括:
[0007]在启动应用程序对应的运行进程时,将进程间通信拦截模块注入所述运行进程内;
[0008]在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块HOOK住操作系统中具有进程间通信功能的系统API ;
[0009]在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块;
[0010]若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API进行重定向操作,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
[0011]可选地,在所述进程间通信拦截模块判断调用方是否为系统模块之后,还包括:
[0012]若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
[0013]可选地,所述具有进程间通信功能的系统API,包括:
[0014]创建或查找窗口的系统AP1、创建或读取共享内存的系统AP1、创建或读取命名管道的系统AP1、以及创建或打开命名内核对象的系统API。
[0015]可选地,所述内核对象包括:互斥体、事件和信号量。
[0016]可选地,所述对所述被调用的具有进程间通信功能的系统API进行重定向操作,包括:
[0017]对调用所述具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀。
[0018]第二方面,本发明提供一种进程间通信拦截装置,包括:
[0019]注入模块,用于在启动应用程序对应的运行进程时,将进程间通信拦截模块注入所述运行进程内;
[0020]挂钩模块,用于在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块HOOK住操作系统中具有进程间通信功能的系统API ;
[0021]判断模块,用于在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块;
[0022]拦截重定向模块,用于若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API进行重定向操作,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
[0023]可选地,所述装置,还包括:
[0024]不拦截模块,用于若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
[0025]可选地,所述具有进程间通信功能的系统API,包括:
[0026]创建或查找窗口的系统AP1、创建或读取共享内存的系统AP1、创建或读取命名管道的系统AP1、以及创建或打开命名内核对象的系统API。
[0027]可选地,所述内核对象包括:互斥体、事件和信号量。
[0028]可选地,所述拦截重定向模块,具体用于
[0029]若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对调用所述具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
[0030]由上述技术方案可知,本发明的(windows)进程间通信拦截方法及装置,在每次启动应用程序时对其进行进程间通信拦截,阻止进程和已存在的进程通信,可以达到一个文件对应一个进程,一个进程对应一种权限,能够防止一个应用程序在启动时通过进程间通信方式通知已有的进程去打开一个文件,避免同一进程打开多个文件,从而使后续权限控制可以对进程进行更加精确的控制。
【附图说明】
[0031]图1为本发明一实施例提供的一种进程间通信拦截方法的流程示意图;
[0032]图2为本发明一实施例提供的一种进程间通信拦截装置的结构示意图。
【具体实施方式】
[0033]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
[0034]图1示出了本发明一实施例提供的进程间通信拦截方法的流程示意图,如图1所示,本实施例的进程间通信拦截方法如下所述。
[0035]101、在启动应用程序对应的运行进程时,将进程间通信拦截模块(DLL)注入所述运行进程内。
[0036]应说明的是,在启动应用程序时,启动所述应用程序对应的运行进程。
[0037]102、在所述进程间通信拦截模块被所述运行进程加载后,所述进程间通信拦截模块挂钩HOOK住操作系统中具有进程间通信功能的系统应用程序编程接口(Applicat1nProgramming Interface,简称 API)。
[0038]在具体应用中,本实施例所述具有进程间通信功能的系统API,可包括:
[0039]创建或查找窗口的系统AP1、创建或读取共享内存的系统AP1、创建或读取命名管道的系统AP1、以及创建或打开命名内核对象的系统API等。
[0040]进一步地,所述内核对象可包括:互斥体、事件和信号量等。
[0041]103、在所述具有进程间通信功能的系统API被所述应用程序调用时,所述进程间通信拦截模块判断调用方是否为系统模块。
[0042]104、若调用方不是系统模块,则所述进程间通信拦截模块拦截被调用的具有进程间通信功能的系统API,并对所述被调用的具有进程间通信功能的系统API进行重定向操作,使所述被调用的具有进程间通信功能的系统API无法与操作系统中已有进程通信。
[0043]在具体应用中,本实施例所述步骤104中的“对所述被调用的具有进程间通信功能的系统API进行重定向操作”,可具体包括:
[0044]对调用所述具有进程间通信功能的系统API的调用参数进行重定向操作再继续执行,并将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀。
[0045]可理解的是,将所述具有进程间通信功能的系统API中的窗口类名、标题、共享内存名称、管道名称和内核对象名称均增加前缀和后缀,可以使其与原有名称区分开来,这样继续执行之后所使用的名称都是被特殊处理过的。无论已存在的进程创建的窗口、创建的共享内存、还是创建的内核对象都与本进程所使用的名称有区别,所以本进程是无法访问到已有的进程创建的各种资源,从而达到了进程间通信拦截的功能。
[0046]在具体应用中,在所述步骤103之后,还可包括图中未示出的步骤105:
[0047]105、若调用方是系统模块,则所述进程间通信拦截模块不拦截被调用的具有进程间通信功能的系统API。
[0048]本实施例的进程间通信拦截方法,在每次启动应用程序时对其进行
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1