CN111539010A - 剪贴板控制方法、装置、电子设备及计算机可读存储介质 - Google Patents
剪贴板控制方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111539010A CN111539010A CN202010550241.9A CN202010550241A CN111539010A CN 111539010 A CN111539010 A CN 111539010A CN 202010550241 A CN202010550241 A CN 202010550241A CN 111539010 A CN111539010 A CN 111539010A
- Authority
- CN
- China
- Prior art keywords
- data
- controlled
- clipboard
- function
- call request
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种剪贴板控制方法、装置、电子设备及计算机可读存储介质,方法包括:在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,依次拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象,以及拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型,最终便能够根据操作类型,对所述剪贴板对象的数据进行控制。本发明实施例的剪贴板控制方法能够对剪贴板数据进行控制,完善了Linux系统剪贴板控制方法,防止系统剪贴板泄漏数据内容,提高了数据安全性。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种剪贴板控制方法、装置、电子设备及计算机可读存储介质。
背景技术
目前,绝大多数数据都是以电子文档的形式存储在计算机中。日常,人与人、企业与企业之间的协作交流,均离不开电子文档。电子文档,在工作、生活中扮演着重要的角色。电子数据的编辑、流转十分方便,相对于传统的纸质文档,其成本低廉、易于运输、流转,大大方便了人们之间的协作。方便的同时,电子文档的流转安全问题也就变的十分突出。
当下,windows平台上有成熟的DLP(Data leakage prevention,数据泄密防护)产品,对含有敏感数据的文档进行加密处理,同时不影响用户的正常使用。用户编辑加密文件时,能控制系统剪贴板,有效防止加密文档内容复制到其他文档中,从而保护了电子文档的安全。
由于windows平台与Linux平台差异,导致这类DLP方法及产品只能应用在windows平台,不能应用在Linux平台上,而目前在Linux平台上,还没有剪贴板控制方法,系统剪贴板可能导致数据内容泄漏,进而存在数据安全风险。
发明内容
本发明提供了一种剪贴板控制方法、装置、电子设备及计算机可读存储介质,以解决现有技术中在Linux平台上没有有效控制剪贴板的方法,进而存在数据安全风险的问题。
为了解决上述问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种剪贴板控制方法,应用于电子设备,所述电子设备的操作系统为linux系统,所述linux系统的图形界面基于x11协议实现,所述方法包括:
在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,所述inlinehook模块用于对函数库中的预设剪贴板函数进行hook;
拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象;
拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型;
根据所述操作类型,对所述剪贴板对象的数据进行控制。
可选地,根据所述操作类型,对所述剪贴板对象的数据进行控制,包括:
在所述操作类型为复制操作的情况下,拦截所述进程对XChangeProperty函数的第三调用请求,从所述第三调用请求中获取待控制数据,对待存入所述剪贴板对象的待控制数据进行控制。
可选地,对待存入所述剪贴板对象的待控制数据进行控制,包括以下任一步骤:
清空所述待控制数据;
使用第一随机数据替换所述待控制数据,将所述第一随机数据存入所述剪贴板对象;
按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象。
可选地,所述剪贴板对象中的数据包括加密后的所述待控制数据,根据所述操作类型,对所述剪贴板对象的数据进行控制,包括:
在所述操作类型为进程间粘贴操作的情况下,拦截所述进程对XGetWindowProperty函数的第四调用请求,从所述第四调用请求中获取所述剪贴板对象中的加密后的所述待控制数据,对加密后的所述待控制数据进行控制。
可选地,对加密后的所述待控制数据进行控制,包括以下任一步骤:
清空加密后的所述待控制数据;
使用第二随机数据替换加密后的所述待控制数据;
按照预设解密算法对加密后的所述待控制数据进行解密。
第二方面,本发明实施例提供了一种剪贴板控制装置,应用于电子设备,所述电子设备的操作系统为linux系统,所述linux系统的图形界面基于x11协议实现,所述装置包括:
注入模块,用于在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,所述inlinehook模块用于对函数库中的预设剪贴板函数进行hook;
第一拦截模块,用于拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象;
第二拦截模块,用于拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型;
控制模块,用于根据所述操作类型,对所述剪贴板对象的数据进行控制。
可选地,所述控制模块,包括:
第一拦截子模块,用于在所述操作类型为复制操作的情况下,拦截所述进程对XChangeProperty函数的第三调用请求,从所述第三调用请求中获取待控制数据,对待存入所述剪贴板对象的待控制数据进行控制。
可选地,所述第一拦截子模块,包括:
第一清空子单元,用于清空所述待控制数据;
第一替换子单元,用于使用第一随机数据替换所述待控制数据,将所述第一随机数据存入所述剪贴板对象;
加密子单元,用于按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象。
可选地,所述剪贴板对象中的数据包括加密后的所述待控制数据,所述控制模块,包括:
第二拦截子模块,用于在所述操作类型为进程间粘贴操作的情况下,拦截所述进程对XGetWindowProperty函数的第四调用请求,从所述第四调用请求中获取所述剪贴板对象中的加密后的所述待控制数据,对加密后的所述待控制数据进行控制。
可选地,所述第二拦截子模块,包括:
第二清空子单元,用于清空加密后的所述待控制数据;
第二替换子单元,用于使用第二随机数据替换加密后的所述待控制数据;
解密子单元,用于按照预设解密算法对加密后的所述待控制数据进行解密。
第三方面,本发明实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的剪贴板控制方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的剪贴板控制方法的步骤。
与现有技术相比,本发明包括以下优点:
在本发明实施例中,通过在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,依次拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象,以及拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型,最终便能够根据操作类型,对所述剪贴板对象的数据进行控制。因此,本申请实施例的剪贴板控制方法能够对剪贴板数据进行控制,完善了Linux系统剪贴板控制方法,防止系统剪贴板泄漏数据内容,提高了数据安全性。
附图说明
图1示出了本发明实施例提供的一种剪贴板控制方法的步骤流程图;
图2示出了本发明实施例提供的一种剪贴板控制方法的流程框图;
图3示出了本发明实施例提供的一种剪贴板控制方法的具体应用场景的流程框图;
图4示出了本发明实施例提供的一种数据处理装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,图1是本发明一实施例提供的一种剪贴板控制方法的流程图,如图1所示,该方法可以应用于电子设备,所述电子设备的操作系统为linux系统,所述linux系统的图形界面基于x11协议实现,该方法具体可以包括如下步骤:
步骤101,在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,所述inlinehook模块用于对函数库中的预设剪贴板函数进行hook。
本实施例的剪贴板控制方法可以工作在任意电子设备上,该电子设备的操作系统为Linux系统,也可以是一些基于Linux为基础二次开发的操作系统,例如中标麒麟、深度Linux、中兴新支点操作系统、湖南麒麟等,且电子设备的图形界面基于x11(X WindowSystem)协议实现,即基于X Window System实现图形界面。
hook技术:又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。
系统开机后,用户可以基于系统提供的图形界面进行操作,例如,打开一个文档,打开该文档的操作即是一个启动进程的操作,此时,便能够检测到启动的进程,如果该文档是第一次打开,即可以检测到打开文档的操作为初次启动的进程。实际操作中,检测某个进程是否是初次启动的进程可以参考现有技术,本实施例中不再赘述。
在检测到初次启动的进程的情况下,便可以将inlinehook模块注入到初次启动的进程地址空间,这样,就可以对libx11函数库中的预设剪贴板api函数进行hook操作。其中,inlinehook模块可以参考现有技术,本实施例中不再赘述。
如果某个进程不是初次启动,例如,在打开某个进程,并将该进程切换至后台之后,再次启动该进程,由于该进程在初次启动的时候已经注入了inlinehook模块,因此,在该进程未关闭并重新启动之前,均不会再次注入inlinehook模块。而如果该进程被关闭之后再次打开,则可以再次注入inlinehook模块。
本实施例中,预设剪贴板函数可以包括XInternAtom函数、XNextEvent函数、XChangeProperty函数和XGetWindowProperty函数。其中,以上libx11函数库中剪贴板函数皆为已知函数,具体不再赘述。
步骤102,拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象。
本实施例中,当启动的进程发起对剪贴板的操作时,例如复制操作(复制操作本质为将数据设置到剪贴板)或者粘贴操作(粘贴操作本质为从剪贴板中获取数据),首先会调用XInternAtom函数,因此,inlinehook模块可以拦截进程对XInternAtom函数的第一调用请求,进而从第一调用请求的参数中获取选择的剪贴板对象。剪贴板对象里边存储有相关的属性、数据等信息。
步骤103,拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型。
本实施例中,在进程调用XInternAtom函数之后,会接着调用XNextEvent函数,因此,inlinehook模块可以拦截进程对XNextEvent函数的第二调用请求,进而从第二调用请求的参数中获取当前操作事件的操作类型,即解析第二调用请求的参数,获得当前操作事件的操作类型。
本实施例中,操作类型具体可以包括两种,即当前操作事件是复制操作还是粘贴操作。
步骤104,根据所述操作类型,对所述剪贴板对象的数据进行控制。
本实施例中,在获得操作类型之后,便可以对剪贴板对象中的数据进行相应的控制,从而在Linux平台上实现剪贴板控制的功能。
在本发明实施例中,通过在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,依次拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象,以及拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型,最终便能够根据操作类型,对所述剪贴板对象的数据进行控制。因此,本申请实施例的剪贴板控制方法能够对剪贴板数据进行控制,完善了Linux系统剪贴板控制方法,防止系统剪贴板泄漏数据内容,提高了数据安全性。
其中,在一个实施例中,上述步骤104,具体包括子步骤11:在所述操作类型为复制操作的情况下,拦截所述进程对XChangeProperty函数的第三调用请求,从所述第三调用请求中获取待控制数据,对待存入所述剪贴板对象的待控制数据进行控制。
在上述步骤103中,如果拦截进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型为复制操作,此时,进程在调用XNextEvent函数之后,会接着调用XChangeProperty函数,因此,inlinehook模块可以拦截进程对XChangeProperty函数的第三调用请求,进而从第三调用请求的参数中获取设置到剪贴板对象中的剪贴板数据,即待控制数据,待控制数据为实际复制操作中待存入到剪贴板对象的内容,在获取到待控制数据之后,便能够对待存入剪贴板对象的待控制数据进行控制。
本实施例中,能够在剪贴板关键操作中的复制阶段对剪贴板进行控制,具体地,可以在复制阶段对待存入剪贴板对象的数据进行控制,进而在Linux平台上实现剪贴板控制的功能。
在一种实施方式中,上述步骤11中,对待存入所述剪贴板对象的待控制数据进行控制,具体可以包括以下任一步骤:
步骤11A,清空所述待控制数据。
其中,清空待控制数据,即将获取到的待控制数据全部删除清空,如此,进程在发起粘贴操作之后便没有任务数据存入剪贴板对象中,即剪贴板对象中数据为空,后续如果存在粘贴操作,便不能从剪贴板对象中获取任何数据,也就不能进行正常粘贴操作,甚至会提示粘贴错误。
当控制操作具体采用清空待控制数据时,可以完全禁止待控制数据存入剪贴板中,从根本上完全控制剪贴板,限制任何进程的正常粘贴,保证了数据的安全性。
步骤11B,使用第一随机数据替换所述待控制数据,将所述第一随机数据存入所述剪贴板对象。
考虑到如果采用步骤11A中的清空所述待控制数据的方式,剪贴板对象中的数据为空,此时容易引起用户误解,用户体验不好,因此,本实施例中可以使用第一随机数据替换所述待控制数据,将第一随机数据存入剪贴板对象。
其中,第一随机数据是系统随机生成的数据,具体可以通过随机打乱接收到的待控制数据的方式生成第一随机数据,也可以通过产生随机字符的方式生成第一随机数据,或者其他方法生成第一随机数据,不管采用何种方式生成第一随机数据,相同点在于,第一随机数据与实际待控制存在较大区别。
在生成第一随机数据之后,便可以使用第一随机数据替换获取到的待控制数据,从而将第一随机数据存入剪贴板对象中,如此,进程虽然可以在发起粘贴操作之后获取到剪贴板对象中的待控制数据,但是该待控制数据是使用第一随机数据替换后的,与实际复制的数据存在较大差异,同样实现了对剪贴板的控制,限制任何进程的正常粘贴,保证了数据的安全性。
步骤11C,按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象。
本实施例中,还可以采用预设加密算法对所述待控制数据进行加密,获得加密后的待控制数据,进而将加密后的待控制数据存入剪贴板对象中,如此,进程虽然可以在发起粘贴操作之后获取到剪贴板对象中的数据,但是获取的数据是经过加密的,需要进行解密才能够用于正常粘贴,也就是说,在复制阶段采用对待控制数据加密的方式,可以控制部分进程获取并正常粘贴待控制数据,例如,进程内部预设对应解密算法的进程便能够在获取到加密的待控制数据之后,采用预设解密算法,对加密的待控制数据进行解密之后用于正常粘贴。
本实施例中剪贴板控制方法,可以在剪贴板关键操作中的复制阶段对剪贴板进行控制,具体地,可以通过对获取到的待控制数据分别选择清空所述待控制数据,使用第一随机数据替换所述待控制数据,或者按照预设加密算法对所述待控制数据进行加密这三种方式进行控制,完全限制或者部分限制进程的正常粘贴,防止系统剪贴板泄漏数据内容,有效保证数据的安全性。
在一种实施方式中,在从所述第三调用请求中获取待控制数据之后,也可以不对待控制数据做任何处理,即将获取的待控制数据直接存入剪贴板对象中,采用此种方式,不在剪贴板关键操作中的复制阶段对剪贴板中的待控制数据进行控制,而仅在后续剪贴板粘贴操作中再对待控制数据进行控制,实现剪贴板控制功能。
结合以上实施例,在从所述第三调用请求中获取待控制数据之后,当使用第一随机数据替换所述待控制数据,将所述第一随机数据存入所述剪贴板对象,或者采用按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象,或者不对待控制数据做任何处理,直接将获取的待控制数据直接存入剪贴板对象中这三种操作时,剪贴板对象中有对应的数据内容。这种情况下,在上述步骤103中,如果拦截进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型为粘贴操作,此时,进程在调用XNextEvent函数之后,会接着调用XGetWindowProperty函数,因此,inlinehook模块可以拦截进程对XGetWindowProperty函数的第四调用请求,即获取剪贴板数据请求,进而从第四调用请求的参数中获取到剪贴板对象中的剪贴板数据(根据对待控制数据进行的控制操作,分别对应第一随机数据、加密后的所述待控制数据或者原始待控制数据中的一种),在获取到剪贴板数据之后,便能够对剪贴板对象的控制数据进行控制。
在一种实施方式中,对待存入所述剪贴板对象的待控制数据进行控制,为按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象,相应地,上述步骤104,具体包括子步骤12:在所述操作类型为进程间粘贴操作的情况下,拦截所述进程对XGetWindowProperty函数的第四调用请求,从所述第四调用请求中获取所述剪贴板对象中的加密后的所述待控制数据,对加密后的所述待控制数据进行控制。
由于对待存入所述剪贴板对象的待控制数据进行控制,为按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象,因此,剪贴板对象中存储有加密后的所述待控制数据,进程调用XGetWindowProperty函数便可以从剪贴板对象中获取到加密后的所述待控制数据,因此,拦截进程对XGetWindowProperty函数的第四调用请求之后,便可以从第四调用请求的参数中获取加密后的所述待控制数据,然后再对加密后的所述待控制数据进行控制。
本实施例中,能够在剪贴板关键操作中的粘贴阶段对剪贴板进行控制,具体地,可以在粘贴阶段对从剪贴板对象中获取的加密后的待控制数据进行控制,进而在Linux平台上实现剪贴板控制的功能。
需要说明的是,只有进程间粘贴时,才会采用x11协议,即才会存在拦截所述进程对XGetWindowProperty函数的第四调用请求的过程。如果是进程内部粘贴,由于不采用x11协议,因此,进程内部粘贴时可以正常粘贴,不受控制。也就是说,当进程发起的是进程间粘贴时,例如从打开的A文档粘贴到另一个打开的B文档,适用本申请实施例的粘贴板控制方法,当进程发起的是进程内部粘贴时,例如,从打开的A文档粘贴到A文档内部,此时不适用本申请实施例的粘贴板控制方法。
在一种实施方式中,上述步骤12中,对加密后的所述待控制数据进行控制,具体可以包括以下任一步骤:
步骤12A,清空加密后的所述待控制数据。
其中,清空加密后的待控制数据,即将获取到的加密后的待控制数据全部删除清空,如此,进程发起的粘贴操作便不能获取到任何粘贴内容,也就不能进行正常粘贴操作。
当控制操作具体采用清空加密后的待控制数据时,可以完全禁止加密后的待控制数据被粘贴操作获取,从根本上完全控制剪贴板,限制任何进程的正常粘贴,保证了数据的安全性。
步骤12B,使用第二随机数据替换加密后的所述待控制数据。
本实施例中可以使用第二随机数据替换加密后的待控制数据,此时粘贴操作获取的便是第二随机数据。
其中,第二随机数据的生成方式参考上述第一随机数据的生成方式,此处不再赘述。
在生成第二随机数据之后,便可以使用第二随机数据替换加密后的待控制数据,此时粘贴操作获取的便是第二随机数据,如此,进程虽然可以在粘贴操作过程中获取到数据,但是该数据是使用第二随机数据替换后的,与实际加密后的数据存在较大差异,即使是具有与预设加密算法对应的预设解密算法的进程,也不能获取到实际的待控制数据,即采用此种控制方法可以限制任何进程的正常粘贴,保证了数据的安全性。
步骤12C,按照预设解密算法对加密后的所述待控制数据进行解密。
本实施例中,在一些进程内部可以添加与预设加密算法对应的预设解密算法,例如,同一个应用程序的不同进程,或者同一家公司开发的应用程序的不同进程,或者经过授权的应用程序的进程,可以具有与预设加密算法对应的预设解密算法,因此,在进程间粘贴操作时,可以采用预设解密算法对所述加密后的待控制数据进行解密,获得原始待控制数据,如此,进程便可以在粘贴操作过程中获取到原始待控制数据,用于正常粘贴。也就是说,对于添加有预设解密算法的进程,可以正常粘贴待控制数据,例如,进程内部预设对应解密算法的进程便能够在获取到加密的待控制数据之后,采用预设解密算法,对加密的待控制数据进行解密之后用于正常粘贴。
本实施例中剪贴板控制方法,可以在剪贴板关键操作中的粘贴阶段对剪贴板中的数据进行控制,具体地,可以通过对获取到的加密后的待控制数据分别选择清空加密后的所述待控制数据,使用第二随机数据替换加密后的所述待控制数据,或者按照预设解密算法对加密后的所述待控制数据进行解密这三种方式进行控制,完全限制或者部分限制进程的正常粘贴,防止系统剪贴板泄漏数据内容,有效保证数据的安全性。
在一种实施方式中,不对待控制数据做任何处理,即将获取的待控制数据直接存入剪贴板对象中,相应地,从第四调用请求中获取所述剪贴板对象中的原始待控制数据,此时,对原始待控制数据进行控制可以包括清空原始待控制数据和使用第三随机数据替换原始待控制数据。
本实施例中,可以不在剪贴板关键操作中的复制阶段对剪贴板中的数据进行控制,而是在剪贴板关键操作中的粘贴阶段对剪贴板中的数据进行控制,具体可以采用清空原始待控制数据和使用第三随机数据替换原始待控制数据的方式,完全限制进程间的正常粘贴,防止系统剪贴板泄漏数据内容,有效保证数据的安全性。
在一种实施方式中,上述步骤101中检测到初次启动的进程可以为针对加密文档的进程,也就是说,只有检测到针对加密文档的产生的进程,才会将inlinehook模块注入所述进程内,而对于非加密文档的进程,则可以不用将inlinehook模块注入所述进程内。
本发明实施例的剪贴板控制方法,完善了Linux系统剪贴板控制方法的技术空白,实现自主、可控,架构先进,技术稳定,兼容性高,部署方便、灵活,使用方便,不改变使用者操作习惯,培训成本低。
参照图2,图2示出了本发明实施例提供的一种剪贴板控制方法的流程框图。如图2所示,流程如下:
1、系统开机后,用户启动新进程,完成后转至下一步执行。
2、注入模块将inlinehook模块注入到启动的进程内部空间中,完成后转至下一步执行。
3、Inlinhook模块实现对libx11库中api(XInternAtom、XNextEvent、XChangeProperty、XGetWindowProperty)函数进行hook,完成后转至下一步执行。
4、拦截XInternAtom函数,获取选择的剪贴板对象,完成后转至下一步执行。
5、拦截XNextEvent函数,解析复制、粘贴操作,完成后转至下一步执行。
6、检查是否为复制操作,如果是,则转至下一步执行,否则转至第8步执行。
7、拦截XChangeProperty函数,实现对待控制数据的控制(清空待控制数据;或者对待控制数据加密;或者替换待控制数据),完成后转至第9步执行。
8、拦截XGetWindowProperty函数,获取剪贴板对象中待控制数据(可以是加密后的待控制数据,也可以是未经处理的待控制数据),可对待控制数据进行控制(可清空待控制数据;或者对加密后的待控制数据解密;或者替换待控制数据)。
9、结束。
参照图3,图3示出了本发明实施例提供的一种剪贴板控制方法的具体应用场景的流程框图。如图3所示,流程如下:
1、进入中标麒麟桌面操作系统后,登录V3账号系统,验证通过后转至第2步处理。
2、同步密级及密文使用权限策略,完成后转至下一步执行。
3、手动加密指定类型文件,完成后转至下一步执行。
4、双击打开文件,选择文件内容并进行复制,完成后转至下一步执行。
5、检查是否进程内部粘贴操作,如果是,则转至下一步处理,否则,转至第7步处理。
6、允许粘贴所选内容,完成后转至第8步处理。
7、拒绝粘贴所选内容,完成后转至下一步处理。
8、检查是否退出系统,如果是,则转至下一步处理,否则转至第2步处理。
9、退出,结束
基于相同的技术构思,请参考图4,图4示出了本发明实施例的一种剪贴板控制装置40的机构框图,如图4所示,所述装置应用于电子设备,所述电子设备的操作系统为linux系统,所述linux系统的图形界面基于x11协议实现;所述装置包括:
注入模块41,用于在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,所述inlinehook模块用于对函数库中的预设剪贴板函数进行hook;
第一拦截模块42,用于拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象;
第二拦截模块43,用于拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型;
控制模块44,用于根据所述操作类型,对所述剪贴板对象的数据进行控制。
可选地,所述控制模块,包括:
第一拦截子模块,用于在所述操作类型为复制操作的情况下,拦截所述进程对XChangeProperty函数的第三调用请求,从所述第三调用请求中获取待控制数据,对待存入所述剪贴板对象的待控制数据进行控制。
可选地,所述第一拦截子模块,包括:
第一清空子单元,用于清空所述待控制数据;
第一替换子单元,用于使用第一随机数据替换所述待控制数据,将所述第一随机数据存入所述剪贴板对象;
加密子单元,用于按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象。
可选地,所述剪贴板对象中的数据包括加密后的所述待控制数据,所述控制模块,包括:
第二拦截子模块,用于在所述操作类型为进程间粘贴操作的情况下,拦截所述进程对XGetWindowProperty函数的第四调用请求,从所述第四调用请求中获取所述剪贴板对象中的加密后的所述待控制数据,对加密后的所述待控制数据进行控制。
可选地,所述第二拦截子模块,包括:
第二清空子单元,用于清空加密后的所述待控制数据;
第二替换子单元,用于使用第二随机数据替换加密后的所述待控制数据;
解密子单元,用于按照预设解密算法对加密后的所述待控制数据进行解密。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述剪贴板控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述剪贴板控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书实施例的各种实施方式均采用递进的方式描述,每个实施方式重点说明的都是与其他实施方式的不同之处,各个实施方式之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、装置、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理电子设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理电子设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理电子设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理电子设备上,使得在计算机或其他可编程电子设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程电子设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者电子设备中还存在另外的相同要素。
以上对本发明所提供的一种剪贴板控制方法、一种剪贴板控制装置、一种电子设备和一种计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种剪贴板控制方法,其特征在于,应用于电子设备,所述电子设备的操作系统为linux系统,所述linux系统的图形界面基于x11协议实现,所述方法包括:
在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,所述inlinehook模块用于对函数库中的预设剪贴板函数进行hook;
拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象;
拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型;
根据所述操作类型,对所述剪贴板对象的数据进行控制。
2.根据权利要求1所述的方法,其特征在于,根据所述操作类型,对所述剪贴板对象的数据进行控制,包括:
在所述操作类型为复制操作的情况下,拦截所述进程对XChangeProperty函数的第三调用请求,从所述第三调用请求中获取待控制数据,对待存入所述剪贴板对象的待控制数据进行控制。
3.根据权利要求2所述的方法,其特征在于,对待存入所述剪贴板对象的待控制数据进行控制,包括以下任一步骤:
清空所述待控制数据;
使用第一随机数据替换所述待控制数据,将所述第一随机数据存入所述剪贴板对象;
按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象。
4.根据权利要求3所述的方法,其特征在于,所述剪贴板对象中的数据包括加密后的所述待控制数据,根据所述操作类型,对所述剪贴板对象的数据进行控制,包括:
在所述操作类型为进程间粘贴操作的情况下,拦截所述进程对XGetWindowProperty函数的第四调用请求,从所述第四调用请求中获取所述剪贴板对象中的加密后的所述待控制数据,对加密后的所述待控制数据进行控制。
5.根据权利要求4所述的方法,其特征在于,对加密后的所述待控制数据进行控制,包括以下任一步骤:
清空加密后的所述待控制数据;
使用第二随机数据替换加密后的所述待控制数据;
按照预设解密算法对加密后的所述待控制数据进行解密。
6.一种剪贴板控制装置,其特征在于,应用于电子设备,所述电子设备的操作系统为linux系统,所述linux系统的图形界面基于x11协议实现,所述装置包括:
注入模块,用于在检测到初次启动的进程的情况下,将inlinehook模块注入所述进程内,所述inlinehook模块用于对函数库中的预设剪贴板函数进行hook;
第一拦截模块,用于拦截所述进程对XInternAtom函数的第一调用请求,从所述第一调用请求中获取剪贴板对象;
第二拦截模块,用于拦截所述进程对XNextEvent函数的第二调用请求,解析当前操作事件的操作类型;
控制模块,用于根据所述操作类型,对所述剪贴板对象的数据进行控制。
7.根据权利要求6所述的装置,其特征在于,所述控制模块,包括:
第一拦截子模块,用于在所述操作类型为复制操作的情况下,拦截所述进程对XChangeProperty函数的第三调用请求,从所述第三调用请求中获取待控制数据,对待存入所述剪贴板对象的待控制数据进行控制。
8.根据权利要求7所述的装置,其特征在于,所述第一拦截子模块,包括:
第一清空子单元,用于清空所述待控制数据;
第一替换子单元,用于使用第一随机数据替换所述待控制数据,将所述第一随机数据存入所述剪贴板对象;
加密子单元,用于按照预设加密算法对所述待控制数据进行加密,将加密后的所述待控制数据存入所述剪贴板对象。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的剪贴板控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的剪贴板控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010550241.9A CN111539010B (zh) | 2020-06-16 | 2020-06-16 | 剪贴板控制方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010550241.9A CN111539010B (zh) | 2020-06-16 | 2020-06-16 | 剪贴板控制方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111539010A true CN111539010A (zh) | 2020-08-14 |
CN111539010B CN111539010B (zh) | 2023-09-01 |
Family
ID=71974577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010550241.9A Active CN111539010B (zh) | 2020-06-16 | 2020-06-16 | 剪贴板控制方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111539010B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112118172A (zh) * | 2020-09-18 | 2020-12-22 | 北京明朝万达科技股份有限公司 | 一种聊天内容审计方法、装置、电子设备及存储介质 |
CN112463402A (zh) * | 2020-11-03 | 2021-03-09 | 浙江华途信息安全技术股份有限公司 | 一种基于macOS操作系统的剪切板控制方法和系统 |
CN112698964A (zh) * | 2020-12-23 | 2021-04-23 | 北京北信源软件股份有限公司 | 数据处理方法、系统、电子设备及介质 |
CN117113417A (zh) * | 2023-10-18 | 2023-11-24 | 中孚安全技术有限公司 | Linux系统下剪贴板管控的方法、系统、设备及介质 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144186A1 (en) * | 1999-12-02 | 2005-06-30 | Lambertus Hesselink | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN101515241A (zh) * | 2009-02-19 | 2009-08-26 | 北京安高科技有限公司 | 一种进程间数据通讯控制方法和系统 |
US20090271866A1 (en) * | 2008-04-23 | 2009-10-29 | Lloyd Liske | System and Method for Protecting Against Malware Utilizing Key Loggers |
JP2010204750A (ja) * | 2009-02-27 | 2010-09-16 | Science Park Corp | ディジタルコンテンツ管理用電子計算機、そのためのプログラム、プログラムの記録媒体、及び、ディジタルコンテンツ管理システム。 |
CA2691129A1 (en) * | 2010-01-26 | 2011-07-26 | Lloyd A. Liske | Activex object method and computer program system for protecting against crimeware key stroke loggers |
CA2802916A1 (en) * | 2010-07-01 | 2012-01-05 | Pcas Patient Care Automation Services Inc. | Vending machine for storage, labeling and dispensing of a container |
US20120226913A1 (en) * | 2009-02-02 | 2012-09-06 | Chel Park | System and method for clipboard security |
US20130337841A1 (en) * | 2009-11-13 | 2013-12-19 | William J. Johnson | System and Method for Sudden Proximal User Interface |
CN103605930A (zh) * | 2013-11-27 | 2014-02-26 | 湖北民族学院 | 一种基于hook和过滤驱动的双重文件防泄密方法及系统 |
CN104680079A (zh) * | 2015-02-04 | 2015-06-03 | 上海信息安全工程技术研究中心 | 一种电子文档安全管理系统及方法 |
US9384253B1 (en) * | 2013-03-13 | 2016-07-05 | Ca, Inc. | System and method for multiple-layer data replication in a Linux architecture |
CN106203111A (zh) * | 2016-07-04 | 2016-12-07 | 北京金山安全软件有限公司 | 防止修改剪贴板数据的方法、装置和终端设备 |
CN109117664A (zh) * | 2018-07-19 | 2019-01-01 | 北京明朝万达科技股份有限公司 | 应用程序的访问控制方法和装置 |
CN109857571A (zh) * | 2018-12-29 | 2019-06-07 | 北京奇安信科技有限公司 | 剪贴板控制方法及装置 |
US10552639B1 (en) * | 2019-02-04 | 2020-02-04 | S2 Systems Corporation | Local isolator application with cohesive application-isolation interface |
CN111290747A (zh) * | 2020-03-07 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种创建函数钩子的方法、系统、设备及介质 |
-
2020
- 2020-06-16 CN CN202010550241.9A patent/CN111539010B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144186A1 (en) * | 1999-12-02 | 2005-06-30 | Lambertus Hesselink | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
US20090271866A1 (en) * | 2008-04-23 | 2009-10-29 | Lloyd Liske | System and Method for Protecting Against Malware Utilizing Key Loggers |
US20120226913A1 (en) * | 2009-02-02 | 2012-09-06 | Chel Park | System and method for clipboard security |
CN101515241A (zh) * | 2009-02-19 | 2009-08-26 | 北京安高科技有限公司 | 一种进程间数据通讯控制方法和系统 |
JP2010204750A (ja) * | 2009-02-27 | 2010-09-16 | Science Park Corp | ディジタルコンテンツ管理用電子計算機、そのためのプログラム、プログラムの記録媒体、及び、ディジタルコンテンツ管理システム。 |
US20130337841A1 (en) * | 2009-11-13 | 2013-12-19 | William J. Johnson | System and Method for Sudden Proximal User Interface |
CA2691129A1 (en) * | 2010-01-26 | 2011-07-26 | Lloyd A. Liske | Activex object method and computer program system for protecting against crimeware key stroke loggers |
CA2802916A1 (en) * | 2010-07-01 | 2012-01-05 | Pcas Patient Care Automation Services Inc. | Vending machine for storage, labeling and dispensing of a container |
US9384253B1 (en) * | 2013-03-13 | 2016-07-05 | Ca, Inc. | System and method for multiple-layer data replication in a Linux architecture |
CN103605930A (zh) * | 2013-11-27 | 2014-02-26 | 湖北民族学院 | 一种基于hook和过滤驱动的双重文件防泄密方法及系统 |
CN104680079A (zh) * | 2015-02-04 | 2015-06-03 | 上海信息安全工程技术研究中心 | 一种电子文档安全管理系统及方法 |
CN106203111A (zh) * | 2016-07-04 | 2016-12-07 | 北京金山安全软件有限公司 | 防止修改剪贴板数据的方法、装置和终端设备 |
CN109117664A (zh) * | 2018-07-19 | 2019-01-01 | 北京明朝万达科技股份有限公司 | 应用程序的访问控制方法和装置 |
CN109857571A (zh) * | 2018-12-29 | 2019-06-07 | 北京奇安信科技有限公司 | 剪贴板控制方法及装置 |
US10552639B1 (en) * | 2019-02-04 | 2020-02-04 | S2 Systems Corporation | Local isolator application with cohesive application-isolation interface |
CN111290747A (zh) * | 2020-03-07 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种创建函数钩子的方法、系统、设备及介质 |
Non-Patent Citations (7)
Title |
---|
. LUEVANOS, J. ELIZARRARAS, K. HIRSCHI AND J. -H. YEH: "Analysis on the Security and Use of Password Managers", 《2017 18TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED COMPUTING, APPLICATIONS AND TECHNOLOGIES (PDCAT)》 * |
HEUN KIM AND DAE-JOON HWANG: "A study on the system call for the protection of intellectual property rights on Linux base", 《PROCEEDINGS 2001 PACIFIC RIM INTERNATIONAL SYMPOSIUM ON DEPENDABLE COMPUTING》 * |
STRONGHUANG: "FreeRTOS-HOOK(钩子函数)" * |
Y. LIU, L. KONG AND G. CHEN: "Data-Oriented Mobile Crowdsensing: A Comprehensive Survey", 《IEEE COMMUNICATIONS SURVEYS & TUTORIALS》 * |
万文静: "基于进程监控的数据防泄漏技术研究", 《中国优秀硕士学位论文全文数据库》 * |
李晓丽,李小红: "基于Hook机制的Linux文件访问日志模块研究" * |
王䶮: "基于Linux平台的文档安全系统的设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112118172A (zh) * | 2020-09-18 | 2020-12-22 | 北京明朝万达科技股份有限公司 | 一种聊天内容审计方法、装置、电子设备及存储介质 |
CN112463402A (zh) * | 2020-11-03 | 2021-03-09 | 浙江华途信息安全技术股份有限公司 | 一种基于macOS操作系统的剪切板控制方法和系统 |
CN112698964A (zh) * | 2020-12-23 | 2021-04-23 | 北京北信源软件股份有限公司 | 数据处理方法、系统、电子设备及介质 |
CN117113417A (zh) * | 2023-10-18 | 2023-11-24 | 中孚安全技术有限公司 | Linux系统下剪贴板管控的方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111539010B (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111539010B (zh) | 剪贴板控制方法、装置、电子设备及计算机可读存储介质 | |
US8874625B2 (en) | Method, apparatus and system for accessing remote files | |
US20120090021A1 (en) | Platform Specific Application Building | |
US20140040622A1 (en) | Secure unlocking and recovery of a locked wrapped app on a mobile device | |
US9158902B2 (en) | Software modification for partial secure memory processing | |
KR20140016897A (ko) | 디바이스 상의 앱들의 보안화 및 관리 | |
US11295029B1 (en) | Computer file security using extended metadata | |
CN105786521B (zh) | 一种文件外发保护方法和装置 | |
CN104715209A (zh) | 一种外发文档加密保护方法 | |
CN102708335A (zh) | 一种涉密文件的保护方法 | |
CN111131216A (zh) | 文件加密、解密方法及装置 | |
CN112307528A (zh) | 电子文档的安全处理方法及装置 | |
KR101499535B1 (ko) | 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체 | |
EP2541456B1 (en) | Method for protecting the digital contents of a solid state memory | |
CN108307244B (zh) | 弹幕发言时间控制方法、存储介质、电子设备及系统 | |
CN108399341B (zh) | 一种基于移动端的Windows双重文件管控系统 | |
CN112866216B (zh) | 一种用于对文件加密的方法及系统 | |
CN109543366B (zh) | 一种源代码加密方法及其装置和系统 | |
JP4415732B2 (ja) | コンテンツ暗号化プログラム、コンテンツ暗号化プログラムを記録した記録媒体、コンテンツ再生制御プログラム、及び、コンテンツ再生制御プログラムを記録した記録媒体 | |
JP2015185071A (ja) | 情報追跡システム及び情報追跡方法 | |
US11822680B1 (en) | Systems and methods for secured computer operations | |
CN112507361A (zh) | 针对国产操作系统的电子文档加密方法 | |
JP2011138209A (ja) | 文書管理システム、文書管理方法、及びそのプログラム | |
CN115130141B (zh) | 一种文档处理方法、装置、移动终端及存储介质 | |
CN108846266A (zh) | 一种应用程序运行授权的方法、系统以及通信终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |