本公开提供了一种应用程序的资源保护方法及装置、资源读取方法及装置,资源保护方法包括:对应用程序的资源文件加密,得到资源文件密文;生成应用程序的动态链接库,动态链接库中包括钩子程序、解密代码和解密密钥;钩子程序用于监控预设的读取函数以及指示执行解密代码,读取函数能够被用于读取资源文件;解密代码和解密密钥用于解密资源文件密文;生成第一发布文件,第一发布文件包括应用程序的第一代码文件、资源文件密文以及动态链接库;其中,第一代码文件包括用于在应用程序的程序入口调用动态链接库的调用代码;第一发布文件用于发布应用程序。本公开使得应用程序的资源文件无法被盗用或反编译,大大提高了应用程序的资源文件的安全性。资源文件的安全性。资源文件的安全性。
【技术实现步骤摘要】
应用程序的资源保护方法、资源读取方法及装置
[0001]本公开涉及信息安全
,特别涉及一种应用程序的资源保护方法及装置、资源读取方法及装置。
技术介绍
[0002]现有技术中,对应用程序的资源的一种有效的保护方式是加密。2021年8月开始Google Play要求新发布应用必须使用AAB格式。AAB文件是Java JAR包格式的扩展,也是ZIP文件格式的扩展格式。谷歌商店将AAB格式的文件根据不同设备的配置参数,将应用程序的代码、资源等生成不同数量(大于一个)的数据包,并重新打包成APK格式的文件。但由于应用程序的安装文件生成了多个数据包,无法直接利用APK的保护方式对代码及资源进行保护。
[0003]因此,亟需一种针对AAB格式的文件中的资源进行保护的方法。
技术实现思路
[0004]有鉴于此,本公开实施例的目的在于提供一种应用程序的资源保护方法及装置、资源读取方法及装置,用于提高应用程序的资源文件的安全性。
[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]调用模块,其配置为在运行应用程序的第一代码文件时,基于在所述应用程序的程序入口处的调用代码,调用动态链接库;
[0039]执行模块,其配置为执行所述动态链接库中的钩子程序,以监控预设的读取函数;
[0040]解密模块,其配置为在监控到利用所述预设的读取函数读取目标资源文件的情况下,基于所述动态链接库中的解密代码以及解密密钥,对所述目标资源文件解密,得到所述应用程序的资源文件;其中,所述目标资源文件为所述资源文件密文中包含的一个或多个资源文件;
[0041]返回模块,其配置为返回所述资源文件给所述读取函数,以读取所述目标资源文件。
[0042]第五方面,本公开实施例还提供了一种电子设备,包括:
[0043]存储器,配置为存储计算机指令;
[0044]处理器,配置为运行所述计算机指令,以实现上述第一方面和第二方面示出的任一项所述的方法。
[0045]第六方面,本公开实施例还提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行上述第一方面和第二方面示出的任一项所述的方法。
[0046]本公开实施例通过设置应用程序的动态链接库以及其调用代码,并将动态链接库和调用代码封装在第一发布文件中,以实现对应用程序的第一代码文件以及资源文件密文进行保护,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种应用程序的资源保护方法,其特征在于,包括:对应用程序的资源文件加密,得到资源文件密文;生成应用程序的动态链接库,其中,所述动态链接库中包括钩子程序、解密代码和解密密钥;所述钩子程序用于监控预设的读取函数以及指示执行所述解密代码,所述读取函数能够被用于读取所述资源文件;所述解密代码和所述解密密钥用于解密所述资源文件密文;生成第一发布文件,所述第一发布文件包括所述应用程序的第一代码文件、所述资源文件密文以及所述动态链接库;其中,所述第一代码文件包括用于在所述应用程序的程序入口调用所述动态链接库的调用代码;所述第一发布文件用于发布所述应用程序。2.根据权利要求1所述的资源保护方法,其特征在于,所述生成第一发布文件,包括:获取第二发布文件,所述第二发布文件包括第二代码文件;修改所述第二代码文件中的代码,得到第一代码文件,以使所述第一代码文件包括所述调用代码;基于所述第一代码文件、所述动态链接库以及所述资源文件密文生成所述第一发布文件。3.根据权利要求1至2任一项所述的资源保护方法,其特征在于,在生成应用程序的动态链接库之前,还包括:为应用程序的资源文件随机生成对应的加密密钥;通过所述加密密钥为所述应用程序的资源文件加密,得到所述资源文件密文,其中,所述加密密钥与所述解密密钥对应。4.根据权利要求1至3任一项所述的资源保护方法,其特征在于,还包括:基于所述资源文件密文计算所述资源文件的第一标识信息,其中,所述第一标识信息表示该资源文件为加密文件;所述动态链接库中还包括:所述资源文件的标识信息。5.根据权利要求1至4任一项所述的资源保护方法,其特征在于,还包括:按照预设规则修改所述解密代码的顺序和/或设置所述解密代码不可读,得到处理后的解密代码;所述动态链接库中包括的代码为所述处理后的解密代码。6.一种应用程序的资源读取方法,其特征在于,所述应用程序通过第一发布文件而被发布,所述第一发布文件包括所述应用程序的第一代码文件、资源文件密文以及动态链接库;所述方法包括:在运行应用程序的第一代码文件时,基于在所述应用程序的程序入口处的调用代码,调用动态链接库;执行所述动态链接库中的钩子程序,以监控预设的读取函数;在监控到利用所述预设的读取函数读取目标资源文件的情况下,基于所述动态链接库中的解密代码以及解密密钥,对所述目标资源文件解密,得到所述应用程序的资源文件;其中,所述目标资源文件为所述资源文件密文中包含的一个或多...
【专利技术属性】
技术研发人员:孙吉平,张磊,
申请(专利权)人:北京深思数盾科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。