【技术实现步骤摘要】
基于Linux系统的应用程序窗口水印添加方法和装置
[0001]本专利技术涉及信息安全
,尤其涉及一种基于Linux系统的应用程序窗口水印添加方法和装置。
技术介绍
[0002]随着社会信息化程度的提高,信息安全的重要性愈发重要,其中窗口水印是一种有效的保护手段,通过在要保护的进程的窗口上显示一层包含文字、图片以及二维码中任意一种水印的图层对该窗口内显示的信息进行保护。
[0003]目前对用用程序窗口添加水印的方式通常是注入可执行文件到目标程序中,在系统启动目标应用程序后再基于窗口函数的Hook机制调用相应的窗口绘制函数,改变原有函数执行逻辑,增加自定义的水印绘制信息,进而到达窗口水印的效果。然而,由于在Linux下窗口界面开发的框架有很多种,诸如X11、Gtk、Electron、Qt、WxWidgets等等,不同框架实现的窗口函数有着不同的逻辑,针对窗口设置hook机制需要针对不同软件进行适配,该适配工作的工作量将是灾难性的。此外,函数注入的方式还需在目标进程窗口的函数执行过程中插入自定义的窗口水印绘制函数,但是每个UI框架的实现函数都不尽相同,因此诸如方式无法普遍的适用于所有应用程序。因此上述注入式方式添加窗口水印的灵活性和可适用范围均较差。
[0004]更重要的是,上述注入方式还存在着安全风险,原因在于该方案会把自定义的窗口水印绘制函数代码注入到目标进程中去运行,进程执行过程的安全性具备不确定性,一旦注入逻辑稍有差池则会导致目标进程出现显示异常、执行异常等异常状况,甚至导致目标进程崩溃。因 ...
【技术保护点】
【技术特征摘要】
1.一种基于Linux系统的应用程序窗口水印添加方法,其特征在于,包括:基于Linux X11函数实时获取当前桌面的所有窗口的id和进程识别号,并基于所有窗口的进程识别号确定待添加水印的目标进程是否启动;若目标进程已启动,则确定所述目标进程对应的窗口的id,并基于所述目标进程对应的窗口的id在所述目标进程对应的窗口上层创建所述目标进程对应的水印窗口,并设置所述水印窗口的透明属性和鼠标穿透属性;利用Linux X11函数实时获取所述目标进程对应的窗口的实时窗口坐标和/或实时大小信息,并基于所述目标进程对应的窗口的实时窗口坐标和/或实时大小信息设置所述水印窗口的位置和/或大小;获取当前桌面的活跃窗口信息,并基于所述活跃窗口信息确定所述目标进程对应的窗口是否为当前桌面的活跃窗口;若所述目标进程对应的窗口为当前桌面的活跃窗口,则对所述水印窗口增加置顶属性。2.根据权利要求1所述的基于Linux系统的应用程序窗口水印添加方法,其特征在于,所述利用Linux X11函数实时获取所述目标进程对应的窗口的实时窗口坐标和/或实时大小信息,具体包括:基于Linux X11的XselectInput函数和XnextEvent函数订阅StructureNotifyMask类型消息和PropertyChangeMask类型消息,捕获窗口移动事件和窗口大小调整事件;当捕获到窗口移动事件和/或窗口大小调整事件时,基于所述目标进程对应的窗口的id确定相应事件是否关联所述目标进程对应的窗口;若相应事件关联所述目标进程对应的窗口,则从相应事件的消息结构体中获取所述目标进程对应的窗口的实时窗口坐标和/或实时大小信息。3.根据权利要求2所述的基于Linux系统的应用程序窗口水印添加方法,其特征在于,所述基于Linux X11的XselectInput函数和XnextEvent函数订阅StructureNotifyMask类型消息和PropertyChangeMask类型消息,捕获窗口移动事件和窗口大小调整事件,具体包括:基于所述XselectInput函数订阅StructureNotifyMask类型消息和PropertyChangeMask类型消息;基于所述XnextEvent函数阻塞获取Xevent事件,以捕获窗口移动事件和窗口大小调整事件,并在捕获到窗口移动事件和/或窗口大小调整事件时接收相应事件对应的StructureNotifyMask消息和/或PropertyChangeMask消息。4.根据权利要求1所述的基于Linux系统的应用程序窗口水印添加方法,其特征在于,所述获取当前桌面的活跃窗口信息,并基于所述活跃窗口信息确定所述目标进程对应的窗口是否为当前桌面的活跃窗口;若所述目标进程对应的窗口为当前桌面的活跃窗口,则对所述水印窗口增加置顶属性,具体包括:在所述水印窗口内创建查询线程以实时查询当前桌面的活跃窗口信息,并基于所述活跃窗口信息确定所述目标进程对应的窗口是否为当前桌面的活跃窗口;若所述目标进程对应的窗口为当前桌面的活跃窗口,则基于所述水印窗口的setWindowFlags(Qt::FramelessWindowHint|Qt::WindowTransparentForInput|Qt::Tool|Qt::X11BypassWindowManagerHint|Qt::WindowStaysOnTopHint...
【专利技术属性】
技术研发人员:张黎,王程鹏,
申请(专利权)人:闪捷信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。