【技术实现步骤摘要】
一种iOS应用程序的加固方法、装置、设备及介质
[0001]本说明书涉及计算机
,尤其涉及一种iOS应用程序的加固方式、装置、设备及介质。
技术介绍
[0002]随着计算机技术的发展,移动应用程序(Application,简称App)的开发与使用越来越普遍,App暴露出来的安全问题也越来越多。而随着手机应用市场的不断发展,iOS平台上恶意应用的增速已经超过了Android平台。iOS应用程序App同样面临着应用程序遭逆向破解、内购破解、第二次打包签名等安全问题。由于核心的代码逻辑泄露,第三方就可以利用代码中的漏洞进行攻击,所以对于iOS应用程序App的安全性的要求越来越高。
[0003]目前对于iOS加固处理时一般根据用户输入的字符对当前项目代码进行字符串加密、类名、方法名、图片哈希值更改实现基础的代码混淆,但是此类方式在经历一次代码混淆之后,由于其目标文件不存在,因此无法再次运行混淆,导致iOS应用程序目录下的代码文件难以全部完成代码混淆。
技术实现思路
[0004]为了解决上述技术问题,本说 ...
【技术保护点】
【技术特征摘要】
1.一种iOS应用程序的加固方法,其特征在于,所述方法包括:读取与待加固iOS应用程序相对应项目的目录结构,以及项目原始代码文件;基于所述原始代码文件获取待混淆名称,根据预设配置文件获得与各待混淆名称相对应的随机名称;基于所述项目目录结构依次解析所述待加固iOS应用程序项目目录中的项目工程文件;基于所述随机名称替换各所述项目工程文件中对应的待混淆名称,实现各所述项目工程文件的混淆,获得加固后的混淆项目工程文件;获取所述混淆项目工程文件的原始前缀与当前前缀的匹配关系,以基于所述匹配关系对所述混淆项目工程文件进行迭代混淆。2.根据权利要求1所述的一种iOS应用程序的加固方法,其特征在于,所述基于所述原始代码文件获取待混淆名称,根据预设配置文件获得与各待混淆名称相对应的随机名称之前,所述方法还包括:获取所述待加固iOS应用程序的敏感信息所对应的待混淆名称;其中,所述待混淆名称包括:类名、方法名和变量名;基于预置敏感词确定所述随机名称的有效字符覆盖范围,并基于预置字符量范围确定所述随机名称的字符长度;基于所述有效字符覆盖范围与所述字符长度,随机生成与各所述待混淆名称相对应的多维数组,以将所述多维数组作为与各待混淆名称相对应的随机名称;确定所述待混淆名称与所述随机名称的对应关系,以将所述对应关系写入所述预设配置文件。3.根据权利要求1所述的一种iOS应用程序的加固方法,其特征在于,所述基于所述项目目录结构依次解析所述待加固iOS应用程序项目目录中的项目工程文件之前,所述方法还包括:根据所述待加固iOS应用程序相对应项目的目录结构,获取所述相对应项目的根目录路径,以将所述配置文件根据所述根目录路径上传到对应的根目录下;将所述预先设置的混淆文件前缀标识、所述配置文件以及所述根目录路径输入预置混淆脚本模板,以生成与所述待加固iOS应用程序相对应的混淆脚本;将所述混淆脚本根据所述根目录路径上传到对应的根目录下。4.根据权利要求3所述的一种iOS应用程序的加固方法,其特征在于,所述基于所述项目目录结构依次解析所述待加固iOS应用程序项目目录中的项目工程文件,具体包括:根据所述项目目录结构,生成所述待加固iOS应用程序所对应的混淆项目目录结构;基于所述混淆脚本依次将所述待加固iOS应用程序项目目录中的项目工程文件,解析到对应的混淆项目目录结构中;其中,所述基于所述混淆脚本依次将所述待加固iOS应用程序项目目录中的项目工程文件,解析到对应的混淆项目目录结构中之前,所述方法还包括:基于所述混淆脚本确定所述待加固iOS应用程序项目目录中各所述项目工程文件的前缀标识;若基于所述前缀标识确定所述项目工程文件为未混淆项目工程文件,则将所述未混淆
项目工程文件输入到预置待混淆队列中,以等待混淆。5.根据权利要求4所述的一种iOS应用程序的加固方法,其特征在于,所述基于所述随机名称替换各所述项目工程文件中对应的待混淆名称,实现各所述项目工程文件的混淆,获得加固后的混淆项目工程文件,具体包括:依次获取预置待混淆队列中的未混淆项目工程文件;基于所述混淆脚本将所述未混淆项目工程文件中对应的待混淆名称依次替换为对应的随机名称,以对所述未混淆项目工程文件进行混淆;确定所述混淆脚本的当前前缀以将所述当前前缀写入所述未混淆项目工程文件的原始前缀之前,获得加固后的混淆项目工程文件;获得加固后的混淆项目工程文件之后,所述方法还包括:提取所述项目工程文件与所述混淆项...
【专利技术属性】
技术研发人员:陈雁锋,李益防,
申请(专利权)人:浪潮通用软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。