基于Archive包的加固方法、装置、存储介质和计算机设备制造方法及图纸

技术编号:36893026 阅读:39 留言:0更新日期:2023-03-15 22:06
本公开的实施方式涉及应用加固技术领域,更具体地,涉及基于Archive包的加固方法、装置、存储介质和计算机设备。基于Archive包的加固方法包括:对Archive包中的原始Macho文件进行加固处理,以获得对应的目标Macho文件;对Archive包中的原始dSYM文件进行更新,以获得对应的目标dSYM文件;将所述目标dSYM文件和所述目标Macho文件打包合并,以获得加固后的目标Archive包。本公开的基于Archive包的加固方案,能够以对源代码和开发工具无侵入的方式,基于编译生成的Archive包实现应用程序的高效、稳定的加固。稳定的加固。稳定的加固。

【技术实现步骤摘要】
基于Archive包的加固方法、装置、存储介质和计算机设备


[0001]本公开的实施方式涉及应用加固
,更具体地,本公开的实施方式涉及基于Archive包的加固方法、装置、存储介质和计算机设备。

技术介绍

[0002]本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
[0003]为了提高应用程序(Application,APP)的安全性,需要对应用程序进行加固。目前的加固技术,通过修改应用程序的源代码或源代码的开发工具的方式来实现加固,存在对源代码/开发工具造成侵入的问题,且修改源代码/开发工具的加固方式耗时长、稳定性差。

技术实现思路

[0004]本公开的实施方式提供基于Archive包的加固方法、装置、存储介质和计算机设备,能够以对源代码和开发工具无侵入的方式,基于编译生成的Archive包实现应用程序的高效、稳定的加固。
[0005]根据本公开的一个方面,提供一种基于Archive包的加固方法,包括:对Archive包中的原始Macho文件进行加固处理,以获得对应的目标Macho文件;对Archive包中的原始dSYM文件进行更新,以获得对应的目标dSYM文件;将所述目标dSYM文件和所述目标Macho文件打包合并,以获得加固后的目标Archive包。
[0006]在本公开的示例性实施例中,所述对Archive包中的原始Macho文件进行加固处理,以获得对应的目标Macho文件,包括:按照目标架构将所述原始Macho文件拆分为相应架构下的独立Macho文件;对各所述独立Macho文件进行加固处理,以生成对应于各所述独立Macho文件的对象文件;链接各所述对象文件,以生成相应架构下的单架构Macho文件;合并所有的所述单架构Macho文件,以获得全架构下的所述目标Macho文件。
[0007]在本公开的示例性实施例中,所述对各所述独立Macho文件进行加固处理,包括:提取出所述独立Macho文件的原始中间代码;对所述原始中间代码进行代码转换处理,以获得对应的第一中间代码。
[0008]在本公开的示例性实施例中,所述对各所述独立Macho文件进行加固处理,还包括:对所述第一中间代码进行代码插桩处理,以获得加固后的目标中间代码;编译所述目标中间代码,以生成相应的所述对象文件。
[0009]在本公开的示例性实施例中,所述对所述第一中间代码进行代码插桩处理,包括:在所述第一中间代码的相应位置插入加固代码。
[0010]在本公开的示例性实施例中,所述原始中间代码为BitCode代码。
[0011]在本公开的示例性实施例中,所述目标架构包括ARMv7架构和ARMv64架构;所述按照目标架构将所述原始Macho文件拆分为相应架构下的独立Macho文件,包括:按照所述ARMv7架构将所述原始Macho文件拆分为ARMv7架构下的独立Macho文件,以及按照所述
ARMv64架构将所述原始Macho文件拆分为ARMv64架构下的独立Macho文件。
[0012]在本公开的示例性实施例中,所述对Archive包中的原始dSYM文件进行更新,以获得对应的目标dSYM文件,包括:基于BCSymbolMaps文件对所述原始dSYM文件进行更新,以获得更新后的所述目标dSYM文件。
[0013]在本公开的示例性实施例中,所述将所述目标dSYM文件和所述目标Macho文件打包合并,以获得加固后的目标Archive包,包括:对所述目标Macho文件进行签名,将所述目标dSYM文件和签名后的目标Macho文件打包合并,以获得加固后的所述目标Archive包。
[0014]在本公开的示例性实施例中,所述Archive包基于由Xcode创建的iOS源代码编译生成。
[0015]根据本公开的又一个方面,提供一种基于Archive包的加固装置,包括:目标Macho文件生成模块,用于对Archive包中的原始Macho文件进行加固处理,以获得对应的目标Macho文件;目标dSYM文件生成模块,用于对Archive包中的原始dSYM文件进行更新,以获得对应的目标dSYM文件;目标Archive包生成模块,用于将所述目标dSYM文件和所述目标Macho文件打包合并,以获得加固后的目标Archive包。
[0016]在本公开的示例性实施例中,所述目标Macho文件生成模块,包括:独立Macho文件获取模块,用于按照目标架构将所述原始Macho文件拆分为相应架构下的独立Macho文件;对象文件生成模块,用于对各所述独立Macho文件进行加固处理,以生成对应于各所述独立Macho文件的对象文件;单架构Macho文件生成模块,用于链接各所述对象文件,以生成相应架构下的单架构Macho文件;目标Macho文件获取模块,用于合并所有的所述单架构Macho文件,以获得全架构下的所述目标Macho文件。
[0017]在本公开的示例性实施例中,所述对象文件生成模块,包括:原始中间代码提取模块,用于提取出所述独立Macho文件的原始中间代码;第一中间代码获取模块,用于对所述原始中间代码进行代码转换处理,以获得对应的第一中间代码。
[0018]在本公开的示例性实施例中,所述对象文件生成模块,还包括:中间代码加固模块,用于对所述第一中间代码进行代码插桩处理,以获得加固后的目标中间代码;中间代码编译模块,用于编译所述目标中间代码,以生成相应的所述对象文件。
[0019]在本公开的示例性实施例中,所述中间代码加固模块,包括:加固代码插入模块,用于在所述第一中间代码的相应位置插入加固代码。
[0020]在本公开的示例性实施例中,所述原始中间代码为BitCode代码。
[0021]在本公开的示例性实施例中,所述目标架构包括ARMv7架构和ARMv64架构;所述独立Macho文件获取模块,包括:Macho文件拆分模块,用于按照所述ARMv7架构将所述原始Macho文件拆分为ARMv7架构下的独立Macho文件,以及按照所述ARMv64架构将所述原始Macho文件拆分为ARMv64架构下的独立Macho文件。
[0022]在本公开的示例性实施例中,所述目标dSYM文件生成模块,包括:dSYM文件更新模块,用于基于BCSymbolMaps文件对所述原始dSYM文件进行更新,以获得更新后的所述目标dSYM文件。
[0023]在本公开的示例性实施例中,所述目标Archive包生成模块,包括:签名及合并模块,用于对所述目标Macho文件进行签名,将所述目标dSYM文件和签名后的目标Macho文件打包合并,以获得加固后的所述目标Archive包。
[0024]在本公开的示例性实施例中,所述Archive包基于由Xcode创建的iOS源代码编译生成。
[0025]根据本公开的又一个方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述任意实施例所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Archive包的加固方法,其特征在于,包括:对Archive包中的原始Macho文件进行加固处理,以获得对应的目标Macho文件;对Archive包中的原始dSYM文件进行更新,以获得对应的目标dSYM文件;将所述目标dSYM文件和所述目标Macho文件打包合并,以获得加固后的目标Archive包。2.如权利要求1所述的加固方法,其特征在于,所述对Archive包中的原始Macho文件进行加固处理,以获得对应的目标Macho文件,包括:按照目标架构将所述原始Macho文件拆分为相应架构下的独立Macho文件;对各所述独立Macho文件进行加固处理,以生成对应于各所述独立Macho文件的对象文件;链接各所述对象文件,以生成相应架构下的单架构Macho文件;合并所有的所述单架构Macho文件,以获得全架构下的所述目标Macho文件。3.如权利要求2所述的加固方法,其特征在于,所述对各所述独立Macho文件进行加固处理,包括:提取出所述独立Macho文件的原始中间代码;对所述原始中间代码进行代码转换处理,以获得对应的第一中间代码。4.如权利要求3所述的加固方法,其特征在于,所述对各所述独立Macho文件进行加固处理,还包括:对所述第一中间代码进行代码插桩处理,以获得加固后的目标中间代码;编译所述目标中间代码,以生成相应的所述对象文件。5.如权利要求4所述的加固方法,其特征在于,所述对所述第一中间代码进行代码插桩处理,包括:在所述第一中间代码的相应位置插入加固代码...

【专利技术属性】
技术研发人员:王桂林李斌卓辉朱浩齐
申请(专利权)人:杭州网易智企科技有限公司
类型:发明
国别省市:

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

1