CN116483294B - 基于Linux内核管控的打印机水印添加方法和装置 - Google Patents
基于Linux内核管控的打印机水印添加方法和装置 Download PDFInfo
- Publication number
- CN116483294B CN116483294B CN202310746116.9A CN202310746116A CN116483294B CN 116483294 B CN116483294 B CN 116483294B CN 202310746116 A CN202310746116 A CN 202310746116A CN 116483294 B CN116483294 B CN 116483294B
- Authority
- CN
- China
- Prior art keywords
- file
- printed
- function
- linux
- full path
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 196
- 230000006870 function Effects 0.000 claims abstract description 214
- 230000008569 process Effects 0.000 claims abstract description 147
- 238000007639 printing Methods 0.000 claims abstract description 85
- 230000004044 response Effects 0.000 claims abstract description 48
- 238000006243 chemical reaction Methods 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012790 confirmation Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1205—Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1238—Secure printing, e.g. user identification, user rights for device usage, unallowed content, blanking portions or fields of a page, releasing held jobs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1242—Image or content composition onto a page
- G06F3/1243—Variable data printing, e.g. document forms, templates, labels, coupons, advertisements, logos, watermarks, transactional printing, fixed content versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1254—Automatic configuration, e.g. by driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1259—Print job monitoring, e.g. job status
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本发明提供一种基于Linux内核管控的打印机水印添加方法和装置,通过内核函数中的钩子对文件打开事件和打印进程启动事件进行监控并获取相应信息,再基于上述信息获取待打印文件进行响应策略确认,可以兼容各类打印软件,灵活性较高,可移植性和可维护性都较高;另外,通过hook内核进程创建获取打印机过滤器的方式获取打印文件的参数,从而获取待打印文件的相关信息,基于待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,可以对用户无感地获取待打印文件以进行敏感文件识别,从而可以细粒度地监控敏感文件的打印,并且及时地在打印机打开待打印文件的转换文件之前成功添加水印,降低了敏感数据的外泄风险。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于Linux内核管控的打印机水印添加方法和装置。
背景技术
打印设备广泛应用于办公环境中,为人们带来便利的同时也增加了敏感信息泄漏的风险。为了在用户通过文件打印方式窃取传播敏感信息时进行有效溯源并实现数据的版权保护,可以在打印机打印文件时添加水印。目前,基于Linux系统的打印机本身可以通过软件自带的水印添加功能设置水印,但存在以下缺点:一方面可以人为取消水印设置,另一方面无法做到根据打印文件内容是否涉及敏感以及策略动作而决定是否阻断、添加水印或者放行等处理动作。
现有的主流打印技术通常是利用应用层hook(钩子)技术进行打印监控,但是对于不同系统下不同版本的打印软件,适配存在一定难度和复杂度,以及存在系统的兼容性问题。如在应用层添加hook进行打印监控,不同打印软件由于运行逻辑、架构、编程语言等不同,因此针对各类打印软件均需要进行适配,比如wps、office和gedit等程序自带的打印功能,还有第三方的打印软件等,均需要对上述打印软件进行适配,灵活性较差。
发明内容
本发明提供一种基于Linux内核管控的打印机水印添加方法和装置,用以解决现有技术中需要对不同打印软件进行针对性适配、灵活性较差的缺陷。
本发明提供一种基于Linux内核管控的打印机水印添加方法,包括:
向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;
当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;
当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;
基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印。
根据本发明提供的一种基于Linux内核管控的打印机水印添加方法,所述从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,具体包括:
从打印进程对应的过滤器的参数中获取待打印文件的原始文件名称;
基于缓存的已打开文件的原始文件全路径以及所述待打印文件的原始文件名称,确定所述待打印文件在Linux文件系统中的全路径,并基于所述待打印文件在Linux文件系统中的全路径获取所述待打印文件。
根据本发明提供的一种基于Linux内核管控的打印机水印添加方法,所述基于缓存的已打开文件的原始文件全路径以及所述待打印文件的原始文件名称,确定所述待打印文件在Linux文件系统中的全路径,具体包括:
获取所述已打开文件的原始文件全路径中的文件名字符串;
将所述已打开文件的原始文件全路径中的文件名字符串与所述待打印文件的原始文件名称进行完全匹配,得到与所述待打印文件的原始文件名称相匹配的原始文件全路径,作为所述待打印文件在Linux文件系统中的全路径。
根据本发明提供的一种基于Linux内核管控的打印机水印添加方法,所述向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,具体包括:
获取当前Linux操作系统的系统调用表,并基于待添加钩子的内核函数的函数名对所述系统调用表进行查询,确定所述待添加钩子的内核函数在所述系统调用表中的函数指针;
基于所述待添加钩子的内核函数以及待添加的钩子,创建所述待添加钩子的内核函数对应的更新内核函数;其中,所述__NR_openat函数对应的待添加的钩子用于获取当前文件打开进程以及所述文件打开进程对应的已打开文件的原始文件全路径并向打印模块推送所述已打开文件的原始文件全路径;所述__NR_execve函数对应的待添加的钩子用于向所述打印驱动推送当前打印进程的进程信息;
将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
根据本发明提供的一种基于Linux内核管控的打印机水印添加方法,所述将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针,具体包括:
导出系统内核中所述系统调用表的虚拟地址;
基于内存映射单元将所述系统调用表的虚拟地址映射到内存页面,得到所述系统调用表的物理地址;
在所述系统调用表的物理地址处对应的页面创建内存映射后,刷新所述系统调用表的物理地址处对应的页面;
将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
根据本发明提供的一种基于Linux内核管控的打印机水印添加方法,所述在所述响应策略为添加水印时为所述待打印文件添加水印,具体包括:
基于打印进程对应的过滤器的参数中获取所述待打印文件的转换文件;所述待打印文件的转换文件是所述打印进程对应的过滤器对所述待打印文件进行格式转换后可被打印机识别的文件;
基于QT模块生成水印pdf文件,再将所述水印pdf文件叠加到所述待打印文件的转换文件中,得到最终打印文件,并放行所述最终打印文件。
根据本发明提供的一种基于Linux内核管控的打印机水印添加方法,所述基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,具体包括:
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容不包含敏感信息,则确定所述待打印文件的响应策略为放行;
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容包含敏感信息,则确定所述待打印文件的响应策略为添加水印,并上报相应的文件打开进程的进程信息;
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容包含机密信息,则确定所述待打印文件的响应策略为阻断打印,并上报相应的文件打开进程的进程信息。
本发明还提供一种基于Linux内核管控的打印机水印添加装置,包括:
钩子添加单元,用于向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;
文件打开事件监控单元,用于当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;
打印进程启动监控单元,用于当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;
水印添加单元,用于基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于Linux内核管控的打印机水印添加方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于Linux内核管控的打印机水印添加方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于Linux内核管控的打印机水印添加方法。
本发明提供的基于Linux内核管控的打印机水印添加方法和装置,通过内核函数中的钩子对Linux系统中的文件打开事件和打印进程启动事件进行监控并获取相应信息,包括文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径以及待打印文件的文件信息,再基于上述信息获取待打印文件进行响应策略确认,可以兼容各类打印软件,灵活性较高,可移植性和可维护性都较高;另外,通过hook内核进程创建获取打印机过滤器的方式获取打印文件的参数,从而获取待打印文件的相关信息(待打印文件的文件信息),基于待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,可以对用户无感地获取待打印文件以进行敏感文件识别,从而可以细粒度地监控敏感文件的打印,并且及时地在打印机打开待打印文件的转换文件之前成功添加水印,降低了敏感数据的外泄风险。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于Linux内核管控的打印机水印添加方法的流程示意图;
图2是本发明提供的钩子添加方法的流程示意图;
图3是本发明提供的水印添加方法的流程示意图;
图4是本发明提供的基于Linux内核管控的打印机水印添加装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的基于Linux内核管控的打印机水印添加方法的流程示意图,如图1所示,该方法包括:
步骤110,向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;
步骤120,当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;
步骤130,当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;
步骤140,基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印。
具体地,在Linux内核中向其内核函数__NR_openat函数和__NR_execve函数添加钩子,以增加Linux系统中的监听功能。其中,__NR_openat函数的钩子用于监听Linux系统中的文件打开事件,尤其是文本类文件的打开事件,__NR_execve函数的钩子用于监听Linux系统中的打印进程启动事件。当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径。其中,文件打开进程为当前打开文件的应用进程,已打开文件的原始文件全路径为文件打开进程当前打开的已打开文件在Linux文件系统中的完整路径,包括绝对路径或相对路径。此处,可以在监控到文件打开事件时,确定文件打开事件涉及的文件打开进程的类型,若文件打开进程的类型为文本类进程,例如wps进程、office进程等,则控制打印模块缓存该文件打开进程及其对应的已打开文件的原始文件全路径。
随后,当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息。当基于__NR_execve函数中的钩子监控到打印进程启动事件时,可以从打印进程启动事件中获取当前打印进程的进程名,再基于打印进程的进程名确定其对应的打印机类型和过滤器。打印进程对应的过滤器用于将待打印文件的内容类型转换为目标打印机可接受的内容类型,例如pdftopdf过滤器,其参数中包含有待打印文件的文件信息,例如待打印文件在Linux文件系统中的文件名称,待打印文件被过滤器转换后能够为目标打印机接受的转换文件。在此基础上,基于待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,可以从Linux文件系统中获取该待打印文件,并将该待打印文件传输至内容识别模块进行敏感文件识别。内容识别模块对待打印文件的文本内容进行识别,确定其中是否包含有敏感信息,并返回待打印文件的敏感文件识别结果。
基于待打印文件的敏感文件识别结果,确定待打印文件的响应策略。其中,待打印文件的响应策略包括放行、添加水印和阻断打印。随后,在响应策略为添加水印时为待打印文件添加水印,水印类型可以包括文字水印、图片水印、二维码水印和暗水印等,用户可根据实际需求进行选择配置。
本发明实施例提供的方法,通过内核函数中的钩子对Linux系统中的文件打开事件和打印进程启动事件进行监控并获取相应信息,包括文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径以及待打印文件的文件信息,再基于上述信息获取待打印文件进行响应策略确认,可以兼容各类打印软件,灵活性较高,可移植性和可维护性都较高;另外,通过hook内核进程创建获取打印机过滤器的方式获取打印文件的参数,从而获取待打印文件的相关信息(待打印文件的文件信息),基于待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,可以对用户无感地获取待打印文件以进行敏感文件识别,从而可以细粒度地监控敏感文件的打印,并且及时地在打印机打开待打印文件的转换文件之前成功添加水印,降低了敏感数据的外泄风险。
基于上述实施例,所述从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,具体包括:
从打印进程对应的过滤器的参数中获取待打印文件的原始文件名称;
基于缓存的已打开文件的原始文件全路径以及所述待打印文件的原始文件名称,确定所述待打印文件在Linux文件系统中的全路径,并基于所述待打印文件在Linux文件系统中的全路径获取所述待打印文件。
具体地,可以获取打印进程对应的配置文件,从该配置文件中获取该打印进程对应的过滤器及其参数说明,并据此从打印进程对应的过滤器的参数中获取待打印文件的原始文件名称(以pdftopdf过滤器为例,可以从第4个参数中获取待打印文件的原始文件名称)。其中,待打印文件的原始文件名称为该文件在Linux文件系统中保存的文件名称。基于缓存的已打开文件的原始文件全路径以及待打印文件的原始文件名称,确定该待打印文件在Linux文件系统中的全路径,并基于该待打印文件在Linux文件系统中的全路径获取该待打印文件。
基于上述任一实施例,所述基于缓存的已打开文件的原始文件全路径以及所述待打印文件的原始文件名称,确定所述待打印文件在Linux文件系统中的全路径,具体包括:
获取所述已打开文件的原始文件全路径中的文件名字符串;
将所述已打开文件的原始文件全路径中的文件名字符串与所述待打印文件的原始文件名称进行完全匹配,得到与所述待打印文件的原始文件名称相匹配的原始文件全路径,作为所述待打印文件在Linux文件系统中的全路径。
具体地,可以通过获取最后一个路径分隔符(例如“/”)之后的字符串作为文件名字符串。随后,对缓存的已打开文件的原始文件全路径中的文件名字符串与待打印文件的原始文件名称进行完全匹配。需要说明的是,若用户打开了多个文件,则缓存中包含有多个已打开文件的原始文件全路径,在与待打印文件的原始文件名称进行完全匹配时,依次将缓存中的多个已打开文件的原始文件全路径中的文件名字符串与待打印文件的原始文件名称进行完全匹配,匹配时可以按照已打开文件的原始文件全路径的缓存时间由近至远的顺序进行。得到与该待打印文件的原始文件名称相匹配的已打开文件的原始文件全路径中的文件名字符串后,可以将该已打开文件的原始文件全路径作为该待打印文件在Linux文件系统中的全路径。
基于上述任一实施例,如图2所示,所述向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,具体包括:
步骤210,获取当前Linux操作系统的系统调用表,并基于待添加钩子的内核函数的函数名对所述系统调用表进行查询,确定所述待添加钩子的内核函数在所述系统调用表中的函数指针;
步骤220,基于所述待添加钩子的内核函数以及待添加的钩子,创建所述待添加钩子的内核函数对应的更新内核函数;其中,所述__NR_openat函数对应的待添加的钩子用于获取当前文件打开进程以及所述文件打开进程对应的已打开文件的原始文件全路径并向打印模块推送所述已打开文件的原始文件全路径;所述__NR_execve函数对应的待添加的钩子用于向所述打印驱动推送当前打印进程的进程信息;
步骤230,将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
具体地,为了进一步提升打印机水印添加方法的系统兼容性,在对Linux系统的内核函数添加钩子时,可以获取当前Linux操作系统的系统调用表。其中,可以通过调用Linux系统的内核导出函数kallsyms_lookup_name或通过读取system.map文件获取系统调用表。随后,可以利用待添加钩子的内核函数的函数名(例如__NR_openat或__NR_execve)对系统调用表进行查询,确定待添加钩子的内核函数在系统调用表中的函数指针。其中,可以将待添加钩子的内核函数的函数名作为数组下标对系统调用表进行查询,得到待添加钩子的内核函数在系统调用表中的函数指针。
随后,基于待添加钩子的内核函数以及待添加的钩子,创建相应待添加钩子的内核函数对应的更新内核函数。此处,可以创建一个新的自定义函数,在该自定义函数中实现待添加钩子的内核函数的函数功能以及待添加的钩子功能,从而得到待添加钩子的内核函数对应的更新内核函数。其中,__NR_openat函数对应的待添加的钩子用于获取当前文件打开进程以及该文件打开进程对应的已打开文件的原始文件全路径并向打印模块推送该已打开文件的原始文件全路径;__NR_execve函数对应的待添加的钩子用于向打印驱动推送当前打印进程的进程信息。
为了使Linux内核在调用内核函数时默认调用该内核函数对应的更新内核函数以启动该内核函数对应的钩子功能,可以将该待添加钩子的内核函数在系统调用表中的函数指针替换为对应的更新内核函数的函数指针。此处,由于涉及到系统调用表的修改,而系统调用表的默认读写机制为只读,因此可以对该系统调用表的读写权限进行修改,以成功将该待添加钩子的内核函数在系统调用表中的函数指针替换为对应的更新内核函数的函数指针。
基于上述任一实施例,所述将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针,具体包括:
导出系统内核中所述系统调用表的虚拟地址;
基于内存映射单元将所述系统调用表的虚拟地址映射到内存页面,得到所述系统调用表的物理地址;
在所述系统调用表的物理地址处对应的页面创建内存映射后,刷新所述系统调用表的物理地址处对应的页面;
将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
具体地,在修改待添加钩子的内核函数在系统调用表中的函数指针之前,需要将系统调用表的读写权限从只读状态修改为可写状态。然而,不同的处理器架构(例如ARM架构或x86架构等)对于内核空间的读写状态的控制机制不同,为了提升系统兼容性,本发明实施例通过导出系统内核中系统调用表的虚拟地址并基于内存映射单元将系统调用表的虚拟地址映射到内存页面,从而定位得到该系统调用表的物理地址,再通过修改内存页面读写权限的方式修改系统调用表的读写权限。
其中,可以对该系统调用表的物理地址处对应的内存页面创建内存映射后,刷新该系统调用表的物理地址处对应的内存页面。此处,由于该系统表的物理地址处的内存区域已被使用,在基于内存映射函数(例如update_mapping_prot函数)对该系统调用表的物理地址处对应的内存页面创建内存映射时,不会重新创建的内存区域,也不会初始化内存区域中的数据,但会修改该内存页面设定的属性值,因此可以对系统调用表的物理地址处对应的页面创建内存映射,然后刷新该系统调用表的物理地址处对应的内存页面,实现该内存页面读写权限的修改。随后,将待添加钩子的内核函数在系统调用表中的函数指针替换为该内核函数对应的更新内核函数的函数指针。
基于上述任一实施例,如图3所示,所述在所述响应策略为添加水印时为所述待打印文件添加水印,具体包括:
步骤310,基于打印进程对应的过滤器的参数中获取所述待打印文件的转换文件;所述待打印文件的转换文件是所述打印进程对应的过滤器对所述待打印文件进行格式转换后可被打印机识别的文件;
步骤320,基于QT模块生成水印pdf文件,再将所述水印pdf文件叠加到所述待打印文件的转换文件中,得到最终打印文件,并放行所述最终打印文件。
具体地,从打印进程对应的过滤器的参数中获取待打印文件的转换文件,以pdftopdf过滤器为例,可以从该过滤器的第7个属性中获取待打印文件的转换文件。其中,待打印文件的转换文件是上述打印进程对应的过滤器对该待打印文件进行格式转换后可被打印机识别的文件。随后,基于QT模块(还可以采用Python模块)生成水印pdf文件,再将该水印pdf文件叠加到待打印文件的转换文件中,得到最终打印文件,并放行最终打印文件。此处,可以采用pdftk工具叠加水印pdf文件和待打印文件的转换文件,还可以通过PDFix SDK实现待打印文件的水印添加。
基于上述任一实施例,所述基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,具体包括:
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容不包含敏感信息,则确定所述待打印文件的响应策略为放行;
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容包含敏感信息,则确定所述待打印文件的响应策略为添加水印,并上报相应的文件打开进程的进程信息;
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容包含机密信息,则确定所述待打印文件的响应策略为阻断打印,并上报相应的文件打开进程的进程信息。
具体地,若待打印文件的敏感文件识别结果指示该待打印文件的文件内容不包含敏感信息,则可以确定该待打印文件的响应策略为放行,直接控制打印机打印该待打印文件的转换文件;若待打印文件的敏感文件识别结果指示该待打印文件的文件内容包含敏感信息,则确定该待打印文件的响应策略为添加水印以对待打印文件执行水印添加处理,并上报相应的文件打开进程的进程信息;若待打印文件的敏感文件识别结果指示该待打印文件的文件内容包含不允许打印的机密信息,则确定该待打印文件的响应策略为阻断打印,控制打印机不再打印待打印文件的转换文件,并上报相应的文件打开进程的进程信息。
下面对本发明提供的基于Linux内核管控的打印机水印添加装置进行描述,下文描述的基于Linux内核管控的打印机水印添加装置与上文描述的基于Linux内核管控的打印机水印添加方法可相互对应参照。
基于上述任一实施例,图4是本发明提供的基于Linux内核管控的打印机水印添加装置的结构示意图,如图4所示,该装置包括:钩子添加单元410、文件打开事件监控单元420、打印进程启动监控单元430和水印添加单元440。
其中,钩子添加单元410用于向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;
文件打开事件监控单元420用于当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;
打印进程启动监控单元430用于当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;
水印添加单元440用于基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印。
本发明实施例提供的装置,通过内核函数中的钩子对Linux系统中的文件打开事件和打印进程启动事件进行监控并获取相应信息,包括文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径以及待打印文件的文件信息,再基于上述信息获取待打印文件进行响应策略确认,可以兼容各类打印软件,灵活性较高,可移植性和可维护性都较高;另外,通过hook内核进程创建获取打印机过滤器的方式获取打印文件的参数,从而获取待打印文件的相关信息(待打印文件的文件信息),基于待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,可以对用户无感地获取待打印文件以进行敏感文件识别,从而可以细粒度地监控敏感文件的打印,并且及时地在打印机打开待打印文件的转换文件之前成功添加水印,降低了敏感数据的外泄风险。
基于上述任一实施例,所述从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,具体包括:
从打印进程对应的过滤器的参数中获取待打印文件的原始文件名称;
基于缓存的已打开文件的原始文件全路径以及所述待打印文件的原始文件名称,确定所述待打印文件在Linux文件系统中的全路径,并基于所述待打印文件在Linux文件系统中的全路径获取所述待打印文件。
基于上述任一实施例,所述基于缓存的已打开文件的原始文件全路径以及所述待打印文件的原始文件名称,确定所述待打印文件在Linux文件系统中的全路径,具体包括:
获取所述已打开文件的原始文件全路径中的文件名字符串;
将所述已打开文件的原始文件全路径中的文件名字符串与所述待打印文件的原始文件名称进行完全匹配,得到与所述待打印文件的原始文件名称相匹配的原始文件全路径,作为所述待打印文件在Linux文件系统中的全路径。
基于上述任一实施例,所述向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,具体包括:
获取当前Linux操作系统的系统调用表,并基于待添加钩子的内核函数的函数名对所述系统调用表进行查询,确定所述待添加钩子的内核函数在所述系统调用表中的函数指针;
基于所述待添加钩子的内核函数以及待添加的钩子,创建所述待添加钩子的内核函数对应的更新内核函数;其中,所述__NR_openat函数对应的待添加的钩子用于获取当前文件打开进程以及所述文件打开进程对应的已打开文件的原始文件全路径并向打印模块推送所述已打开文件的原始文件全路径;所述__NR_execve函数对应的待添加的钩子用于向所述打印驱动推送当前打印进程的进程信息;
将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
基于上述任一实施例,所述将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针,具体包括:
导出系统内核中所述系统调用表的虚拟地址;
基于内存映射单元将所述系统调用表的虚拟地址映射到内存页面,得到所述系统调用表的物理地址;
在所述系统调用表的物理地址处对应的页面创建内存映射后,刷新所述系统调用表的物理地址处对应的页面;
将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
基于上述任一实施例,所述在所述响应策略为添加水印时为所述待打印文件添加水印,具体包括:
基于打印进程对应的过滤器的参数中获取所述待打印文件的转换文件;所述待打印文件的转换文件是所述打印进程对应的过滤器对所述待打印文件进行格式转换后可被打印机识别的文件;
基于QT模块生成水印pdf文件,再将所述水印pdf文件叠加到所述待打印文件的转换文件中,得到最终打印文件,并放行所述最终打印文件。
基于上述任一实施例,所述基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,具体包括:
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容不包含敏感信息,则确定所述待打印文件的响应策略为放行;
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容包含敏感信息,则确定所述待打印文件的响应策略为添加水印,并上报相应的文件打开进程的进程信息;
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容包含机密信息,则确定所述待打印文件的响应策略为阻断打印,并上报相应的文件打开进程的进程信息。
图5是本发明提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、存储器(memory)520、通信接口(Communications Interface)530和通信总线540,其中,处理器510,存储器520,通信接口530通过通信总线540完成相互间的通信。处理器510可以调用存储器520中的逻辑指令,以执行基于Linux内核管控的打印机水印添加方法,该方法包括:向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印。
此外,上述的存储器520中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于Linux内核管控的打印机水印添加方法,该方法包括:向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于Linux内核管控的打印机水印添加方法,该方法包括:向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于Linux内核管控的打印机水印添加方法,其特征在于,包括:
向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;
当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;
当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;
基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印;
所述向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,具体包括:
获取当前Linux操作系统的系统调用表,并基于待添加钩子的内核函数的函数名对所述系统调用表进行查询,确定所述待添加钩子的内核函数在所述系统调用表中的函数指针;
基于所述待添加钩子的内核函数以及待添加的钩子,创建所述待添加钩子的内核函数对应的更新内核函数;其中,所述__NR_openat函数对应的待添加的钩子用于获取当前文件打开进程以及所述文件打开进程对应的已打开文件的原始文件全路径并向打印模块推送所述已打开文件的原始文件全路径;所述__NR_execve函数对应的待添加的钩子用于向所述打印驱动推送当前打印进程的进程信息;
将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
2.根据权利要求1所述的基于Linux内核管控的打印机水印添加方法,其特征在于,所述从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,具体包括:
从打印进程对应的过滤器的参数中获取待打印文件的原始文件名称;
基于缓存的已打开文件的原始文件全路径以及所述待打印文件的原始文件名称,确定所述待打印文件在Linux文件系统中的全路径,并基于所述待打印文件在Linux文件系统中的全路径获取所述待打印文件。
3.根据权利要求2所述的基于Linux内核管控的打印机水印添加方法,其特征在于,所述基于缓存的已打开文件的原始文件全路径以及所述待打印文件的原始文件名称,确定所述待打印文件在Linux文件系统中的全路径,具体包括:
获取所述已打开文件的原始文件全路径中的文件名字符串;
将所述已打开文件的原始文件全路径中的文件名字符串与所述待打印文件的原始文件名称进行完全匹配,得到与所述待打印文件的原始文件名称相匹配的原始文件全路径,作为所述待打印文件在Linux文件系统中的全路径。
4.根据权利要求1所述的基于Linux内核管控的打印机水印添加方法,其特征在于,所述将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针,具体包括:
导出系统内核中所述系统调用表的虚拟地址;
基于内存映射单元将所述系统调用表的虚拟地址映射到内存页面,得到所述系统调用表的物理地址;
在所述系统调用表的物理地址处对应的页面创建内存映射后,刷新所述系统调用表的物理地址处对应的页面;
将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
5.根据权利要求1所述的基于Linux内核管控的打印机水印添加方法,其特征在于,所述在所述响应策略为添加水印时为所述待打印文件添加水印,具体包括:
基于打印进程对应的过滤器的参数中获取所述待打印文件的转换文件;所述待打印文件的转换文件是所述打印进程对应的过滤器对所述待打印文件进行格式转换后可被打印机识别的文件;
基于QT模块生成水印pdf文件,再将所述水印pdf文件叠加到所述待打印文件的转换文件中,得到最终打印文件,并放行所述最终打印文件。
6.根据权利要求1所述的基于Linux内核管控的打印机水印添加方法,其特征在于,所述基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,具体包括:
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容不包含敏感信息,则确定所述待打印文件的响应策略为放行;
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容包含敏感信息,则确定所述待打印文件的响应策略为添加水印,并上报相应的文件打开进程的进程信息;
若所述待打印文件的敏感文件识别结果指示所述待打印文件的文件内容包含机密信息,则确定所述待打印文件的响应策略为阻断打印,并上报相应的文件打开进程的进程信息。
7.一种基于Linux内核管控的打印机水印添加装置,其特征在于,包括:
钩子添加单元,用于向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,以监听Linux系统中的文件打开事件和打印进程启动事件;
文件打开事件监控单元,用于当打印驱动基于__NR_openat函数中的钩子监控到文件打开事件时,控制打印模块缓存文件打开事件中文件打开进程及其对应的已打开文件的原始文件全路径;其中,所述已打开文件的原始文件全路径为所述已打开文件在Linux文件系统中的完整路径;
打印进程启动监控单元,用于当打印驱动基于__NR_execve函数中的钩子监控到打印进程启动事件时,从打印进程对应的过滤器的参数中获取待打印文件的文件信息,并基于所述待打印文件的文件信息以及缓存的已打开文件的原始文件全路径,获取待打印文件,并将所述待打印文件传输至内容识别模块进行敏感文件识别;
水印添加单元,用于基于所述待打印文件的敏感文件识别结果,确定所述待打印文件的响应策略,并在所述响应策略为添加水印时为所述待打印文件添加水印;
所述向Linux内核函数__NR_openat函数和__NR_execve函数添加钩子,具体包括:
获取当前Linux操作系统的系统调用表,并基于待添加钩子的内核函数的函数名对所述系统调用表进行查询,确定所述待添加钩子的内核函数在所述系统调用表中的函数指针;
基于所述待添加钩子的内核函数以及待添加的钩子,创建所述待添加钩子的内核函数对应的更新内核函数;其中,所述__NR_openat函数对应的待添加的钩子用于获取当前文件打开进程以及所述文件打开进程对应的已打开文件的原始文件全路径并向打印模块推送所述已打开文件的原始文件全路径;所述__NR_execve函数对应的待添加的钩子用于向所述打印驱动推送当前打印进程的进程信息;
将所述待添加钩子的内核函数在所述系统调用表中的函数指针替换为所述更新内核函数的函数指针。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述基于Linux内核管控的打印机水印添加方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于Linux内核管控的打印机水印添加方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310746116.9A CN116483294B (zh) | 2023-06-25 | 2023-06-25 | 基于Linux内核管控的打印机水印添加方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310746116.9A CN116483294B (zh) | 2023-06-25 | 2023-06-25 | 基于Linux内核管控的打印机水印添加方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116483294A CN116483294A (zh) | 2023-07-25 |
CN116483294B true CN116483294B (zh) | 2023-09-01 |
Family
ID=87212322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310746116.9A Active CN116483294B (zh) | 2023-06-25 | 2023-06-25 | 基于Linux内核管控的打印机水印添加方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483294B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556395B (zh) * | 2024-01-10 | 2024-04-19 | 北京天空卫士网络安全技术有限公司 | 一种系统应用水印生成方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2883083A1 (fr) * | 2005-03-14 | 2006-09-15 | Meiosys Soc Par Actions Simpli | Procede d'execution d'une application dans un conteneur virtuel formant une session d'environnement virtualise |
JP2008134820A (ja) * | 2006-11-28 | 2008-06-12 | Fuji Xerox Co Ltd | 印刷制限処理プログラムおよび情報処理装置 |
CN104008337A (zh) * | 2014-05-07 | 2014-08-27 | 广州华多网络科技有限公司 | 一种基于Linux系统的主动防御方法及装置 |
CN107015803A (zh) * | 2017-03-21 | 2017-08-04 | 武汉斗鱼网络科技有限公司 | 基于Linux内核层的按键监听方法及系统 |
CN110175006A (zh) * | 2019-05-30 | 2019-08-27 | 北京奇安信科技有限公司 | 打印源文件的处理方法及装置 |
CN111651414A (zh) * | 2020-04-17 | 2020-09-11 | 福建天泉教育科技有限公司 | 监控文档被打开的方法、存储介质 |
CN112698797A (zh) * | 2020-12-30 | 2021-04-23 | 北京明朝万达科技股份有限公司 | 一种文件打印控制方法、系统、电子设备及存储介质 |
CN113467725A (zh) * | 2021-06-16 | 2021-10-01 | 湖南中观天下科技有限公司 | Linux平台图形应用程序的输出管理方法、系统、设备及介质 |
CN114564158A (zh) * | 2022-04-24 | 2022-05-31 | 北京圣博润高新技术股份有限公司 | Linux系统下控制文档打印的方法、装置、设备及介质 |
-
2023
- 2023-06-25 CN CN202310746116.9A patent/CN116483294B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2883083A1 (fr) * | 2005-03-14 | 2006-09-15 | Meiosys Soc Par Actions Simpli | Procede d'execution d'une application dans un conteneur virtuel formant une session d'environnement virtualise |
JP2008134820A (ja) * | 2006-11-28 | 2008-06-12 | Fuji Xerox Co Ltd | 印刷制限処理プログラムおよび情報処理装置 |
CN104008337A (zh) * | 2014-05-07 | 2014-08-27 | 广州华多网络科技有限公司 | 一种基于Linux系统的主动防御方法及装置 |
CN107015803A (zh) * | 2017-03-21 | 2017-08-04 | 武汉斗鱼网络科技有限公司 | 基于Linux内核层的按键监听方法及系统 |
CN110175006A (zh) * | 2019-05-30 | 2019-08-27 | 北京奇安信科技有限公司 | 打印源文件的处理方法及装置 |
CN111651414A (zh) * | 2020-04-17 | 2020-09-11 | 福建天泉教育科技有限公司 | 监控文档被打开的方法、存储介质 |
CN112698797A (zh) * | 2020-12-30 | 2021-04-23 | 北京明朝万达科技股份有限公司 | 一种文件打印控制方法、系统、电子设备及存储介质 |
CN113467725A (zh) * | 2021-06-16 | 2021-10-01 | 湖南中观天下科技有限公司 | Linux平台图形应用程序的输出管理方法、系统、设备及介质 |
CN114564158A (zh) * | 2022-04-24 | 2022-05-31 | 北京圣博润高新技术股份有限公司 | Linux系统下控制文档打印的方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
Hook Point Estimation for System Call Detection by Virtual Machine Monitor;Masaya Sato.etc;IEEE;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116483294A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102460382B (zh) | 标注虚拟应用进程 | |
US7992145B2 (en) | Multilevel ticket-based job management architecture for computing devices | |
CN116483294B (zh) | 基于Linux内核管控的打印机水印添加方法和装置 | |
US20050262572A1 (en) | Information processing apparatus, operation permission/ denial information generating method, operation permission/denial information generating program and computer readable information recording medium | |
RU2377634C2 (ru) | Программный интерфейс для лицензирования | |
US20040111418A1 (en) | Print management architecture for computing devices | |
US9767301B2 (en) | Context aware data protection | |
US20070091360A1 (en) | Information processing apparatus and print control method | |
US10133875B2 (en) | Digital rights management system implementing version control | |
TW200419442A (en) | System architecture and related methods for dynamically adding software components to extend functionality of system processes | |
CN109923547B (zh) | 程序行为监控设备、分布式对象生成管理设备、存储介质、以及程序行为监视系统 | |
US20150121548A1 (en) | System and method for protected publication of sensitive documents | |
AU2017342700A1 (en) | Architecture, method and apparatus for enforcing collection and display of computer file metadata | |
JP4710674B2 (ja) | 画像処理装置、ワークフロー実行処理方法並びに実行処理プログラム | |
CN110442636B (zh) | 一种数据的读写方法、装置及数据读写设备 | |
US20220405413A1 (en) | Information management system, method of controlling the information management system, and storage medium storing program | |
CN113467725B (zh) | Linux平台图形应用程序的输出管理方法、系统、设备及介质 | |
US9027152B2 (en) | Device for right managing web data, recording medium for performing method for right managing web data on computer, and device and method for providing right management information | |
JP2008052643A (ja) | 文書処理システムおよび文書処理の制御方法 | |
US20200250340A1 (en) | Security rules compliance for personally identifiable information | |
JP3515738B2 (ja) | コンテンツ情報再構築システムおよびコンテンツ情報再構築用プログラム記録媒体 | |
CN108027752A (zh) | 信息处理装置、用于信息处理装置的控制方法、和程序 | |
CN112783573A (zh) | 多个自定义服务的SELinux策略配置系统及方法 | |
KR20010109020A (ko) | 출력 장치를 통한 데이터 유출 감시 및 방지 시스템 및 방법 | |
EP2645293A2 (en) | Method and apparatus for controlling operations performed by a mobile computing device |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Method and device for adding printer watermarks based on Linux kernel control Granted publication date: 20230901 Pledgee: Hangzhou Yuhang Policy Financing Guarantee Co.,Ltd. Pledgor: Flash it Co.,Ltd. Registration number: Y2024980030937 |