一种页面动态水印的方法及设备技术

技术编号:26689955 阅读:16 留言:0更新日期:2020-12-12 02:39
本申请的目的是提供一种页面动态水印的方法及设备,本申请通过确定应用界面的被代理替换的原始对象及替换所述原始对象的代理对象;根据所述原始对象及代理对象替换应用程序的接口代理;将替换后的应用程序的接口代理的相关信息进行重新打包,得到所述应用界面的新的接口执行程序;当所述新的接口执行程序调用所述应用界面的恢复函数时实现动态水印增加。从而可实现对于现成的应用程序增加水印功能以及对各种界面有条件的增加水印,提供了灵活动态水印添加技术,支持界面类型包括activity、fragment,满足了包括常用的word、pdf、excel,以及web等界面安全、认证保障的支持。

【技术实现步骤摘要】
一种页面动态水印的方法及设备
本申请涉及计算机领域,尤其涉及一种页面动态水印的方法及设备。
技术介绍
随着移动终端的不断发展与普及,移动终端已成为人们生活和工作的必要工具。利用手机app观看视频、阅读文档、浏览网站已经变成非常普通的事情。然而,对于一些敏感数据会经常出现泄漏、盗版的情况。针对这个问题,增加界面水印来保护数据成了一种常用手段。当前,使用水印的方式一般分为静态水印和动态水印。其中,静态水印即将水印信息作为文档的一部分永久写入,这种水印信息无法后续更改。在安卓(Android)应用中,使用水印涉及到onCreate、addView接口以及活跃(Activity)界面、片段(Fragment)界面。动态水印即在文档打开的同时(一般在onCreate接口中),动态的将水印信息覆盖在文档界面之上,这种水印信息可灵活修改。对于动态水印,目前的实现方式主要是找到界面根布局,然后利用addView接口将自定义的水印视图增加到原有界面之上。然而,多数情况下都是各自的app单独实现自己的水印功能。而且只限于活跃(Activity)界面增加的水印,在此情况下我们有了一些需求:能否对于现成的应用程序增加水印功能,即对第三方apk支持自定义的水印;能否对各种界面有条件的增加水印,如不同的网页页面、各种片段(Fragment)界面等。
技术实现思路
本申请的一个目的是提供一种页面动态水印的方法及设备,解决现有技术中不能对于现成的应用程序增加水印功能以及不能对各种界面有条件的增加水印的问题。根据本申请的一个方面,提供了一种页面动态水印的方法,该方法包括:确定应用界面的被代理替换的原始对象及替换所述原始对象的代理对象;根据所述原始对象及代理对象替换应用程序的接口代理;将替换后的应用程序的接口代理的相关信息进行重新打包,得到所述应用界面的新的接口执行程序;当所述新的接口执行程序调用所述应用界面的恢复函数时实现动态水印增加。进一步地,确定应用界面的被代理替换的原始对象及替换所述原始对象的代理对象,包括:使用当前应用的应用界面主线程获取应用界面的线程对象,从所述线程对象中获取被代理替换的原始对象;创建替换所述原始对象的代理对象,其中,所述代理对象支持水印操作。进一步地,根据所述原始对象及代理对象替换应用程序的接口代理,包括:将所述线程对象中的被代理替换的原始对象替换为所述原始对象的代理对象,执行所述应用界面的恢复函数完成应用程序的接口代理的替换。进一步地,将替换后的应用程序的接口代理的相关信息进行重新打包,得到所述应用界面的新的接口执行程序,包括:解压终端设备上应用程序的原始安装包,得到解压包,从所述解压包中获取所述应用程序的入口类文件;根据替换后的应用程序的接口代理的相关信息修改所述入口类文件的内容,进行重新打包以及重新签名,得到所述应用界面的新的接口执行程序。进一步地,根据替换后的应用程序的接口代理的相关信息修改所述入口文件的内容,进行重新打包以及重新签名,包括:将所述应用程序的名字属性修改为水印应用类,其中,所述水印应用类继承所述应用程序的原始属性并在入口类函数中实现接口代理初始化操作;利用动态加载对象加载所述原始安装包中入口类文件;删除所述解压包中的签名目录,将所述解压包中入口类文件替换为包含水印应用类编译生成的入口类文件,得到修改后的解压包;压缩所述修改后的解压包的目录并进行重新签名。进一步地,当所述新的接口执行程序调用所述应用界面的恢复函数时实现动态水印增加之前,包括:识别所述应用程序的当前界面类型,根据所述当前界面类型确定动态增加水印的节点。进一步地,根据所述当前界面类型确定动态增加水印的节点,包括:当所述当前界面类型包括活跃界面和片段界面时,根据界面匹配指定的类判断是否增加水印,若是,则确定动态增加水印的节点;当所述当前界面类型为网页视图的地址界面时,则根据代理接口的加载地址匹配所述地址界面的地址,根据匹配结果判断是否增加水印,若是,则确定增加水印的节点。进一步地,确定动态增加水印的节点,包括:当所述当前界面类型为活跃界面时,选择所述接口代理接管恢复函数接口作为动态增加水印的节点;当所述当前界面类型为片段界面时,选择所述接口代理接管视图加载接口作为动态增加水印的节点。根据本申请又一个方面,还提供了一种页面动态水印的设备,所述设备包括:一个或多个处理器;以及存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述所述方法的操作。根据本申请再一个方面,还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如前述所述的方法。与现有技术相比,本申请通过确定应用界面的被代理替换的原始对象及替换所述原始对象的代理对象;根据所述原始对象及代理对象替换应用程序的接口代理;将替换后的应用程序的接口代理的相关信息进行重新打包,得到所述应用界面的新的接口执行程序;当所述新的接口执行程序调用所述应用界面的恢复函数时实现动态水印增加。从而可实现对于现成的应用程序增加水印功能以及对各种界面有条件的增加水印,提供了灵活动态水印添加技术,支持界面类型包括activity、fragment,满足了包括常用的word、pdf、excel、web等界面安全、认证保障的支持。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1示出根据本申请的一个方面提供的一种页面动态水印的方法流程示意图;图2示出本申请一实施例中word文档机密文件增加水印效果示意图;图3示出本申请一实施例中hook接口替换原理示意图;图4示出本申请一实施例中重新打包安装包文件的示意图;图5示出本申请一实施例中单例模式下的水印增加的示意图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式下面结合附图对本申请作进一步详细描述。在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如中央处理器(CentralProcessingUnit,CPU))、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RandomAccessMemory,RAM)和/或非易失性内存等形式,如只读存储器(ReadOnlyMemory,ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-ChangeRAM,PRAM)、静态随机存取存储本文档来自技高网...

【技术保护点】
1.一种页面动态水印的方法,其中,所述方法包括:/n确定应用界面的被代理替换的原始对象及替换所述原始对象的代理对象;/n根据所述原始对象及代理对象替换应用程序的接口代理;/n将替换后的应用程序的接口代理的相关信息进行重新打包,得到所述应用界面的新的接口执行程序;/n当所述新的接口执行程序调用所述应用界面的恢复函数时实现动态水印增加。/n

【技术特征摘要】
1.一种页面动态水印的方法,其中,所述方法包括:
确定应用界面的被代理替换的原始对象及替换所述原始对象的代理对象;
根据所述原始对象及代理对象替换应用程序的接口代理;
将替换后的应用程序的接口代理的相关信息进行重新打包,得到所述应用界面的新的接口执行程序;
当所述新的接口执行程序调用所述应用界面的恢复函数时实现动态水印增加。


2.根据权利要求1所述的方法,其中,确定应用界面的被代理替换的原始对象及替换所述原始对象的代理对象,包括:
使用当前应用的应用界面主线程获取应用界面的线程对象,从所述线程对象中获取被代理替换的原始对象;
创建替换所述原始对象的代理对象,其中,所述代理对象支持水印操作。


3.根据权利要求2所述的方法,其中,根据所述原始对象及代理对象替换应用程序的接口代理,包括:
将所述线程对象中的被代理替换的原始对象替换为所述原始对象的代理对象,执行所述应用界面的恢复函数完成应用程序的接口代理的替换。


4.根据权利要求1所述的方法,其中,将替换后的应用程序的接口代理的相关信息进行重新打包,得到所述应用界面的新的接口执行程序,包括:
解压终端设备上应用程序的原始安装包,得到解压包,从所述解压包中获取所述应用程序的入口类文件;
根据替换后的应用程序的接口代理的相关信息修改所述入口类文件的内容,进行重新打包以及重新签名,得到所述应用界面的新的接口执行程序。


5.根据权利要求4所述的方法,其中,根据替换后的应用程序的接口代理的相关信息修改所述入口文件的内容,进行重新打包以及重新签名,包括:
将所述应用程序的名字属性修改为水印应用类,其中,所述水印应用类继承所述应用程序的原始属...

【专利技术属性】
技术研发人员:耿鹏飞韩璐王静伟
申请(专利权)人:上海上讯信息技术股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1