基于非侵入式的数据保护方法、装置、终端及存储介质制造方法及图纸

技术编号:25042803 阅读:17 留言:0更新日期:2020-07-29 05:33
本公开提供了一种基于非侵入式的数据保护方法、装置、终端及存储介质,属于互联网技术领域。方法包括:生成用于在指定参数的参数值中插入字节码的字节码插桩子类;响应于对指定参数的参数值的读写操作,基于该字节码插桩子类在参数值中插入字节码。本公开通过将嵌入字节码插桩子类的第一指定类型文件转换为可执行的第三指定类型文件,并在对第三指定类型文件中指定参数的参数值进行读写操作时,在参数值中插入字节码。由于无需将数据存储到服务器,因而在网络环境较差时,能够获取到所需数据,确保了应用程序顺利运行,且在数据中插入字节码后,数据原本的内容被破坏,即便被窃取,也无法获取到原来的数据内容,因而保护了用户隐私信息的安全。

【技术实现步骤摘要】
基于非侵入式的数据保护方法、装置、终端及存储介质
本公开涉及互联网
,特别涉及一种基于非侵入式的数据保护方法、装置、终端及存储介质。
技术介绍
在现代生活中,为了满足使用需求,很多用户会在终端内安装各种应用程序,例如,社交应用程序、支付应用程序、购物应用程序、导航应用程序等。由于这些应用程序在注册或使用过程中可能会获取到涉及用户隐私信息的数据,例如,手机号码、身份证号、银行卡账号和密码等,这些数据一旦被不法分子窃取可能给用户造成不必要的经济损失,因此,为了保护用户的隐私信息,需要对应用程序的数据进行保护。相关技术在对应用程序的数据进行保护时,通常会将应用程序中涉及用户隐私信息的数据存储到应用程序的后台服务器,当因业务需求需要使用这些数据时,可通过互联网从后台服务器中获取这些数据。然而,由于网络环境比较复杂,当网络状况不佳时,应用程序可能无法从后台服务器获取到所需数据,导致应用程序的功能无法实现,甚至影响应用程序的正常使用。且存储在后台服务器中的数据也存在被窃取的风险,一旦被窃取,用户的隐私信息将被泄露。
技术实现思路
本公开实施例提供了一种基于非侵入式的数据保护方法、装置、终端及存储介质,在网络状态不佳时也能实现对应用程序的数据保护。所述技术方案如下几方面的内容。一方面,提供了一种基于非侵入式的数据保护方法,所述方法包括:获取待保护的应用程序的源文件;将所述应用程序的源文件进行转换处理,得到第一指定类型文件;重写用于对所述第一指定类型文件进行修改的指定接口;基于重写的指定接口,将所述第一指定类型文件在读写场景下的输出修改为保护后的数据;基于所述重写的指定接口对所述第一指定类型文件中的参数进行解析,得到待保护的指定参数;根据所述指定参数,生成用于在所述指定参数的参数值中插入字节码的字节码插桩子类;将所述字节码插桩子类嵌入到所述第一指定类型文件中,得到第二指定类型文件;将所述第二指定类型文件转换为可执行的第三指定类型文件;响应于对所述第三指定类型文件中指定参数的参数值的读写操作,在所述指定参数的参数值中插入字节码,输出保护后的参数值。另一方面,提供了一种基于非侵入式的数据保护装置,所述装置包括:获取模块,用于获取待保护的应用程序的源文件;转换模块,用于将所述应用程序的源文件进行转换处理,得到第一指定类型文件;重写模块,用于重写用于对所述第一指定类型文件进行修改的指定接口;修改模块,用于基于重写的指定接口,将所述第一指定类型文件在读写场景下的输出修改为保护后的数据;解析模块,用于基于所述重写的指定接口对所述第一指定类型文件中的参数进行解析,得到待保护的指定参数;生成模块,用于根据所述指定参数,生成用于在所述指定参数的参数值中插入字节码的字节码插桩子类;嵌入模块,用于将所述字节码插桩子类嵌入到所述第一指定类型文件中,得到第二指定类型文件;所述转换模块,还用于将所述第二指定类型文件转换为可执行的第三指定类型文件;插入模块,用于响应于对所述第三指定类型文件中指定参数的参数值的读写操作,在所述指定参数的参数值中插入字节码,输出保护后的参数值。另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现一方面所述的基于非侵入式的数据保护方法。另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现一方面所述的基于非侵入式的数据保护方法。另一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面的各种可选实现方式中提供的方法。本公开实施例提供的技术方案带来的有益效果是:通过将嵌入字节码插桩子类的第一指定类型文件转换为可执行的第三指定类型文件,并在对第三指定类型文件中指定参数的参数值进行读写操作时,在参数值中插入字节码。由于无需将数据存储到服务器,因而在网络环境较差时,能够获取到所需数据,确保了应用程序顺利运行,且在数据中插入字节码后,数据原本的内容被破坏,即便被窃取,也无法获取到原来的数据内容,因而保护了用户隐私信息的安全。本公开实施例提供的方法,对于应用程序运行过程中产生的涉密数据,通过在这些数据中插入字节码,使得这些数据对外处于不可见状态,即便被窃取也无法查看到这些数据原本的内容,因而能够对使用应用程序过程中产生的数据进行保护。本公开实施例提供的方法,对于开发过程中数据库中的数据结构以及配置数据,通过在这些数据中插入字节码,同样使得这些数据对外处于不可见状态,即便被窃取也无法查看到这些数据原本的结构,因而能够对应用程序开发过程中产生的数据进行保护。本公开实施例提供的方法,开发人员在开发过程中无论使用任何编程语言、任何数据库均可在未更改业务代码的情况下,对业务代码进行非侵入式的加解密,从而达到数据保护的目的。本公开实施例提供的方法,采用插桩方式无需hook数据操作,即可实现对数据的保护,极大缓解因权限问题造成的运行异常。附图说明为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本公开实施例提供的一种基于非侵入式的数据保护方法所涉及的实施环境;图2是本公开实施例提供的一种数据保护框架的示意图;图3是本公开实施例提供的一种字节码插桩位置的示意图;图4是本公开实施例提供的一种基于非侵入式的数据保护方法流程图;图5是本公开实施例提供的一种基于非侵入式的数据保护方法流程图;图6是本公开实施例提供的一种字节码插桩的流程图;图7是本公开实施例提供的一种字节码插桩插件的实现过程的流程图;图8是本公开实施例提供的一种鉴权流程图;图9是本公开实施例提供的一种基于非侵入式的数据保护装置的结构示意图;图10示出了本公开一个示例性实施例提供的终端的结构框图。具体实施方式为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。可以理解,本公开实施例所使用的术语“每个”、“多个”及“任一”等,多个包括两个或两个以上,每个是指对应的多个中的每一个,任一是指对应的多个中的任意一个。举例来说,多个词语包括10个词语,而每个词语是指这10个词语中的每一个词语,任一词语是指10个词语中的任意一个词语。在执行本公开实施例之前,首先对本公开实施例涉及的名词进行解释。...

【技术保护点】
1.一种基于非侵入式的数据保护方法,其特征在于,所述方法包括:/n获取待保护的应用程序的源文件;/n将所述应用程序的源文件进行转换处理,得到第一指定类型文件;/n重写用于对所述第一指定类型文件进行修改的指定接口;/n基于重写的指定接口,将所述第一指定类型文件在读写场景下的输出修改为保护后的数据;/n基于所述重写的指定接口对所述第一指定类型文件中的参数进行解析,得到待保护的指定参数;/n根据所述指定参数,生成用于在所述指定参数的参数值中插入字节码的字节码插桩子类;/n将所述字节码插桩子类嵌入到所述第一指定类型文件中,得到第二指定类型文件;/n将所述第二指定类型文件转换为可执行的第三指定类型文件;/n响应于对所述第三指定类型文件中指定参数的参数值的读写操作,在所述指定参数的参数值中插入字节码,输出保护后的参数值。/n

【技术特征摘要】
1.一种基于非侵入式的数据保护方法,其特征在于,所述方法包括:
获取待保护的应用程序的源文件;
将所述应用程序的源文件进行转换处理,得到第一指定类型文件;
重写用于对所述第一指定类型文件进行修改的指定接口;
基于重写的指定接口,将所述第一指定类型文件在读写场景下的输出修改为保护后的数据;
基于所述重写的指定接口对所述第一指定类型文件中的参数进行解析,得到待保护的指定参数;
根据所述指定参数,生成用于在所述指定参数的参数值中插入字节码的字节码插桩子类;
将所述字节码插桩子类嵌入到所述第一指定类型文件中,得到第二指定类型文件;
将所述第二指定类型文件转换为可执行的第三指定类型文件;
响应于对所述第三指定类型文件中指定参数的参数值的读写操作,在所述指定参数的参数值中插入字节码,输出保护后的参数值。


2.根据权利要求1所述的方法,其特征在于,所述将所述字节码插桩子类嵌入到所述第一指定类型文件中,得到第二指定类型文件,包括:
将所述字节码插桩子类注册为所述第一指定类型文件中的字节码插桩插件,得到所述第二指定类型文件。


3.根据权利要求2所述的方法,其特征在于,所述将所述字节码插桩子类注册为所述第一指定类型文件中的字节码插桩插件,得到所述第二指定类型文件,包括:
预定义所述字节码插桩子类在所述第一指定类型文件中对应的插件;
重写用于继承所拦截对象的属性的对象继承方法;
基于重写的对象继承方法,将所述字节码插桩子类对应的插件注册到用于为所述应用程序提供扩展功能的应用扩展程序中;
通过为注册到应用扩展程序中的所述字节码插桩子类对应的插件确定插件范围,将所述字节码插桩子类注册为所述第一指定类型文件中的字节码插桩插件。


4.根据权利要求1所述的方法,其特征在于,所述在所述指定参数的参数值中插入字节码之前,还包括:
根据所述应用程序的读写类型,对字节码插桩操作进行鉴权;
响应于通过对字节码插桩操作的鉴权,执行在所述指定参数的参数值中插入字节码的操作。


5.根据权利要求4所述的方法,其特征在于,所述应用程序的读写类型为系统外读写,所述根据所述应用程序的读写类型,对字节码插桩操作进行鉴权,包括:
获取对所述应用程序内文件进行校验得到的文件校验值;
响应于所述文件校验值与预设数值相匹配,确定通过对字节码插桩操作的鉴权。


6.根据权利要求4所述的方法,其特征在于,所述应用程序的读写类型为系统内读写,所述根据所述应用程序的读写类型,对字节码插桩操作进行鉴权,包括:
获取所述应用程序安装包的签名信息;
根据所述应用程序安装包的签名信息,确定所述应用程序安装包的打包次数;
响应于所述应用程序安装包的打包次数为一次,且指定文件内的签名信息与预设签名信息相匹配,确定通过对字节码插桩操作的鉴权。


7.根据权利要求1所述的方法,其特征在于,所述在所述指定参数的参数值中插入字节码之后,还包括:
根据当前执行操作的用户标识,确定对保护后...

【专利技术属性】
技术研发人员:黄辉煌
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1