应用程序的动态链接库保护方法、装置、设备及介质制造方法及图纸

技术编号:30544591 阅读:18 留言:0更新日期:2021-10-30 13:22
本公开的实施例提供了一种应用程序的动态链接库保护方法、装置、设备及介质,涉及计算机技术领域。所述方法包括:将应用安装包中所有的原始动态链接库加密存储至预设目录下,应用程序运行时再从预设目录中进行解密,并将原始动态链接库的加载路径重定向为解密后的动态链接库所在路径,以使应用程序运行时加载解密后的动态链接库。可见,实施本公开实施例可以使得分析者无法直接对解密后的动态链接库进行分析得到原始动态链接库,提高了原始动态链接库的安全性,以及提高了动态链接库保护的兼容性。兼容性。兼容性。

【技术实现步骤摘要】
应用程序的动态链接库保护方法、装置、设备及介质


[0001]本公开的实施方式涉及计算机
,更具体地,本公开的实施方式涉及应用程序的动态链接库保护方法、应用程序的动态链接库保护装置、电子设备以及计算机可读存储介质。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]动态链接库so(shared object,共享库)是Linux操作系统中一种常见的可执行代码的二进制格式,相比静态链接库来说,有节省空间,运行时能够动态申请并调用等特点。
[0004]Android操作系统本质上属于Linux操作系统的一种。目前,Android操作系统中的应用程序加载动态链接库时,需要预先将编译好的动态链接库存储在Android系统指定目录下,使得应用程序运行时能够从该指定目录中加载动态链接库。由于动态链接库存在容易被逆向而暴露核心代码的安全隐患,因此,在开发动态链接库的过程中,可以对动态链接库进行保护。例如,可以对动态链接库进行加密和压缩处理以加固动态链接库,也可以将动态链接库源代码进行混淆,通过增加代码逻辑的复杂度,实现动态链接库的保护。但是,相关技术中对动态链接库进行保护后,仍然可以通过静态注入等方式进行破解,导致动态链接库的保护效果较差。
[0005]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
专利技术内容
[0006]基于上述问题,专利技术人进行了相应的思考,做出了有针对性的改进,提供了应用程序的动态链接库保护方法、应用程序的动态链接库保护装置、电子设备以及计算机可读存储介质,可以通过将应用安装包中所有的原始动态链接库加密存储至预设目录下,应用程序运行时再从预设目录中进行解密,并将原始动态链接库的加载路径重定向为解密后的动态链接库所在路径,以使应用程序运行时加载解密后的动态链接库,使得分析者无法直接对解密后的动态链接库进行分析得到原始动态链接库,提高了原始动态链接库的安全性。
[0007]根据本公开实施例的第一方面,公开了一种应用程序的动态链接库保护方法,包括:
[0008]加密应用安装包的原始目录中的第一动态链接库文件,并将加密生成的第二动态链接库文件存储至所述应用安装包的预设目录中;
[0009]所述应用程序运行时,将所述预设目录中的第二动态链接库文件进行解密处理,并将解密得到的第一动态链接库文件存储至目标目录中;
[0010]将所述原始目录中第一动态链接库文件的加载路径重定向为所述目标目录中第一动态链接库文件的加载路径,以使所述应用程序运行时加载所述目标目录中的第一动态
链接库文件。
[0011]在一个实施例中,基于前述方案,所述应用程序运行前,上述方法还包括:
[0012]向所述应用安装包中添加预设的壳文件和壳动态链接库文件,所述壳文件用于加载所述壳动态链接库文件,所述壳动态链接库文件用于存储所述应用程序运行时所需的代码。
[0013]在一个实施例中,基于前述方案,所述第一动态链接库文件包括原始动态链接库文件和所述壳动态链接库文件;
[0014]所述加密应用安装包的原始目录中的第一动态链接库文件,并将加密生成的第二动态链接库文件存储至所述应用安装包的预设目录中,包括:
[0015]将所述原始目录中的原始动态链接库文件和壳动态链接库文件进行加密处理;
[0016]将加密后的原始动态链接库文件和壳动态链接库文件存储至所述预设目录中。
[0017]在一个实施例中,基于前述方案,上述方法还包括:
[0018]反编译所述应用安装包中的应用配置清单文件,获取所述应用程序的运行入口点;
[0019]将所述预设的壳文件设置为所述应用程序的运行入口点。
[0020]在一个实施例中,基于前述方案,所述将所述预设目录中的第二动态链接库文件进行解密处理,并将解密得到的第一动态链接库文件存储至目标目录中,包括:
[0021]响应于对所述壳文件的执行操作,将所述第二动态链接库文件中的壳动态链接库文件从所述预设目录下解密;
[0022]加载解密后的壳动态链接库文件,并在所述解密后的壳动态链接库文件中将所述第二动态链接库文件中的原始动态链接库文件进行解密;
[0023]将所述解密后的原始动态链接库文件存储到所述目标目录中。
[0024]在一个实施例中,基于前述方案,加载所述解密后的壳动态链接库文件前,上述方法还包括:
[0025]将所述解密后的壳动态链接库文件存储到所述目标目录中;
[0026]获取所述原始目录中第一动态链接库文件的加载路径;
[0027]在所述加载路径中添加所述目标目录,以从所述目标目录中加载所述解密后的壳动态链接库文件。
[0028]在一个实施例中,基于前述方案,加密应用安装包原始目录中的第一动态链接库文件后,上述方法还包括:
[0029]删除所述原始目录中的第一动态链接库文件,并创建与所述原始动态链接库文件对应的伪动态链接库文件,所述伪动态链接库文件包括所述原始动态链接库文件的部分内容。
[0030]在一个实施例中,基于前述方案,所述将所述原始目录中第一动态链接库文件的加载路径重定向为所述目标目录中第一动态链接库文件的加载路径,包括:
[0031]利用钩子函数拦截用于调用所述伪动态链接库文件的加载函数,并将所述伪动态链接库文件的加载路径重定向为所述目标目录中第一动态链接库文件的加载路径,以从所述目标目录中加载所述第一动态链接库文件。
[0032]在一个实施例中,基于前述方案,从所述目标目录中加载所述第一动态链接库文
件前,上述方法还包括:
[0033]从所述目标目录中加载所述第一动态链接库文件依赖的动态链接库文件,以使所述应用程序运行时加载所述目标目录中的第一动态链接库文件。
[0034]根据本公开实施例的第二方面,公开了一种应用程序的动态链接库保护装置,包括:加密存储模块、解密存储模块以及路径重定向模块,其中:
[0035]加密存储模块,用于加密应用安装包的原始目录中的第一动态链接库文件,并将加密生成的第二动态链接库文件存储至所述应用安装包的预设目录中;
[0036]解密存储模块,用于所述应用程序运行时,将所述预设目录中的第二动态链接库文件进行解密处理,并将解密得到的第一动态链接库文件存储至目标目录中;
[0037]路径重定向模块,用于将所述原始目录中第一动态链接库文件的加载路径重定向为所述目标目录中第一动态链接库文件的加载路径,以使所述应用程序运行时加载所述目标目录中的第一动态链接库文件。
[0038]根据本公开实施例的第三方面,公开了一种电子设备,包括:处理器;以及存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时实现如第一方面公开的应用程序的动本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序的动态链接库保护方法,其特征在于,包括:加密应用安装包的原始目录中的第一动态链接库文件,并将加密生成的第二动态链接库文件存储至所述应用安装包的预设目录中;所述应用程序运行时,将所述预设目录中的第二动态链接库文件进行解密处理,并将解密得到的第一动态链接库文件存储至目标目录中;将所述原始目录中第一动态链接库文件的加载路径重定向为所述目标目录中第一动态链接库文件的加载路径,以使所述应用程序运行时加载所述目标目录中的第一动态链接库文件。2.根据权利要求1所述的动态链接库保护方法,其特征在于,所述应用程序运行前,所述方法还包括:向所述应用安装包中添加预设的壳文件和壳动态链接库文件,所述壳文件用于加载所述壳动态链接库文件,所述壳动态链接库文件用于存储所述应用程序运行时所需的代码。3.根据权利要求2所述的动态链接库保护方法,其特征在于,所述第一动态链接库文件包括原始动态链接库文件和所述壳动态链接库文件;所述加密应用安装包的原始目录中的第一动态链接库文件,并将加密生成的第二动态链接库文件存储至所述应用安装包的预设目录中,包括:将所述原始目录中的原始动态链接库文件和壳动态链接库文件进行加密处理;将加密后的原始动态链接库文件和壳动态链接库文件存储至所述预设目录中。4.根据权利要求2所述的动态链接库保护方法,其特征在于,所述方法还包括:反编译所述应用安装包中的应用配置清单文件,获取所述应用程序的运行入口点;将所述预设的壳文件设置为所述应用程序的运行入口点。5.根据权利要求4所述的动态链接库保护方法,其特征在于,所述将所述预设目录中的第二动态链接库文件进行解密处理,并将解密得到的第一动态链接库文件存储至目标目录中,包括:响应于对所述壳文件的执行操作,将所述第二动态链接库文件中的壳动态链接库文件从所述预设目录下解密;加载解密后的壳动态链接库文件,并在所述解密后的壳动态链接库文件中将所述第二动态链接库文件中的原始动态链接...

【专利技术属性】
技术研发人员:李俊吴政周森朱星星
申请(专利权)人:杭州网易智企科技有限公司
类型:发明
国别省市:

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

1