一种基于源混淆的IOS端安全加密控制方法技术

技术编号:35248162 阅读:10 留言:0更新日期:2022-10-19 09:56
本发明专利技术涉及一种基于源混淆的IOS端安全加密控制方法,涉及计算机加密技术领域,其步骤包括:判定源代码的全局数组的安全性等级,分析源代码的全局数组格式,根据安全性等级和全局数组格式选择数组生成方法,得到虚假全局数组;对虚假全局数组进行混淆加固处理,生成加密源代码,混淆加固处理包括用GetString函数替换字符串、混淆表达式、插入控制流、改写判断条件和插入反调试代码;运行加密源代码,在加密源代码的运行过程中监测加密源代码的受攻击状况,在加密源代码受到攻击时,调整加密源代码的加密程度。提高了基于源混淆的IOS端安全加密控制方法所生成的加密源代码的安全性。全加密控制方法所生成的加密源代码的安全性。全加密控制方法所生成的加密源代码的安全性。

【技术实现步骤摘要】
一种基于源混淆的IOS端安全加密控制方法


[0001]本专利技术涉及计算机加密
,尤其涉及一种基于源混淆的IOS端安全加密控制方法。

技术介绍

[0002]随着现代科技水平的飞速发展,电子移动设备的使用高度普及,用于电子移动设备端的应用软件的数量逐渐增多,但应用软件也暴露出了越来越多的安全问题,不仅给应用软件的使用者带来了使用风险,还会损害应用软件开发者的合法权利,这就对应用软件的安全性提出了更高的要求。
[0003]当应用软件的核心代码逻辑泄露,黑客就可以利用核心代码中的漏洞对应用软件进行攻击。传统的IOS应用程序使用class

dump,把应用的类和方法定义dump下来,根据方法名确定程序的处理函数的位置,从而进行hook等操作,故传统的IOS应用程序安全得不到保障。中国专利公开号CN110765425A公开了一种对ios应用程序源代码进行混淆保护的方法及系统,该方法是获取ios应用程序源代码中的待混淆代码,利用Clang工具对待混淆代码进行编译,得到抽象语法树,根据预设标记遍历抽象语法树,得到所有的类名代码、方法名代码和变量名代码,将类名代码、方法名代码和变量名代码替换为随机字符串,根据随机字符串生成对应于待混淆代码的安全代码,此方法在一定程度上提高了电子移动设备端的应用软件的程序的安全性,但该方法需要在应用软件的开发过程中对类、方法名添加宏定义,以便检索源代码中的类名代码、方法名代码和变量名代码,降低应用软件的开发效率。

技术实现思路

[0004]为此,本专利技术提供一种基于源混淆的IOS端安全加密控制方法,可以解决现有技术中的加密方法降低应用软件的开发效率的问题。
[0005]为实现上述目的,本专利技术提供一种基于源混淆的IOS端安全加密控制方法,包括:判定源代码的全局数组的安全性等级,分析源代码的全局数组格式,根据所述安全性等级和所述全局数组格式选择数组生成方法,得到虚假全局数组;对所述虚假全局数组进行混淆加固处理,生成加密源代码,所述混淆加固处理包括用GetString函数替换字符串、混淆表达式、插入控制流、改写判断条件和插入反调试代码;运行加密源代码,在加密源代码的运行过程中监测加密源代码的受攻击状况,在加密源代码受到攻击时,调整加密源代码的加密程度。
[0006]进一步地,当根据所述安全性等级和所述全局数组格式选择数组生成方法时,安全性等级包括一级安全、二级安全和三级安全,数组生成方法包括一级生成方法、二级生成方法和三级生成方法,其中,各安全性等级的安全性由低到高的排序为一级安全、二级安全、三级安全,数组生成方法的混淆程度由低到高的排序为三级生成方法、二级生成方法、一级生成方法,当安全性等级为一级时,选定一级生成方法对全局数组进行转换,当安全性
等级为二级时,选定二级生成方法对全局数组进行转换,当安全性等级为三级时,选定三级生成方法对全局数组进行转换。
[0007]进一步地,对所述虚假全局数组进行混淆加固处理,生成加密源代码,包括:收集字符串并将所述字符串存放在所述虚假全局数组中,用GetString函数替换字符串,生成一级加密源代码;随机选取一级加密源代码中的C/C++函数的部分运算表达式作为替换目标表达式,设置等价表达式将所述替换目标表达式替换成混淆运算表达式,生成二级加密源代码;在二级加密源代码中插入控制流,对所述控制流进行扁平化处理并重新组织,生成三级加密源代码;将三级加密源代码中的判断值为确定值的分支跳转判断条件改写为判断条件表达式,生成四级加密源代码;在四级加密源代码中随机选择一个函数或方法插入反调试代码,或在指定的类、类方法和实施方法插入反调试代码,生成加密源代码。
[0008]进一步地,当设置等价表达式将所述替换目标表达式替换成混淆运算表达式时,所述等价表达式根据复杂度由高到低划分为一级表达式、二级表达式和三级表达式,在进行一次混淆时,使用所述一级表达式对替换目标表达式进行替换。
[0009]进一步地,当加密源代码受到攻击,调整加密源代码的加密程度时,将安全性等级调整为安全性评估较低的新安全性等级,并根据新安全性等级选定新数组生成方法,生成新虚假全局数组,并对所述新虚假全局数组进行混淆加固处理,生成新加密源代码并运行,在新加密源代码的运行过程中监测新加密源代码的受攻击状况。
[0010]进一步地,当降低安全性等级时,若安全性等级为一级安全,则调整等价表达式的复杂度,将虚假全局数组根据代码行数等量划分为三个区域,分别为第一区域、第二区域和第三区域,分别判定第一区域、第二区域和第三区域的区域安全性等级,并将区域安全性等级最低的相应区域确定为调整区域,提高所述调整区域中的等价表达式的复杂度并对替换目标表达式进行替换。
[0011]进一步地,当提高所述调整区域中的等价表达式的复杂度时,若等价表达式为一级表达式,则将一级表达式更换为二级表达式,若等价表达式为二级表达式,则将二表达式更换为三级表达式,若等价表达式为三级表达式,扩大所述调整区域的范围。
[0012]进一步地,当扩大调整区域的范围时,调整区域的初始范围为(m,n),设置第一调整参数k1,用于将(m,n)调整为(m

,n

)其中,m

=m-k1,n

=n+k1,m为调整区域的第一行代码在虚假全局数组中的行数,n为调整区域的最后一行代码在虚假全局数组中的行数,m

为调整区域的第一行代码经过调整后在虚假全局数组中的行数,n

为调整区域的最后一行代码经过调整后在虚假全局数组中的行数。
[0013]进一步地,当将(m,n)调整为(m

,n

)时,根据虚假全局数组的总行数z对m

和n

的数值大小进行判定,若m

>0且n

≦z,判定(m

,n

)为可取范围,将调整区域的初始范围(m,n)调整为更新范围(m

,n

),若m

≦0或n

>z,判定(m

,n

)为不可取范围,则将调整区域的初始范围(m,n)调整为全域范围(1,z),同时在调整区域内增加等价表达式的使用次数。
[0014]进一步地,在调整区域内调整等价表达式的使用次数时,设置第二调整参数k2,用于将等价表达式的初始使用次数x调整为x

,其中,k2=(n

-m

)/z,x

=x+[k2],[k2]为取k2的整数部分的函数。
[0015]与现有技术相比,本专利技术的有益效果在于,通过根据源代码的全局数组的安全性等级和全局数组格式选择数组生成方法,获取虚假全局数组,对虚假全局数组进行混淆加固处理,生本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于源混淆的IOS端安全加密控制方法,其特征在于,包括:判定源代码的全局数组的安全性等级,分析源代码的全局数组格式,根据所述安全性等级和所述全局数组格式选择数组生成方法,得到虚假全局数组;对所述虚假全局数组进行混淆加固处理,生成加密源代码,所述混淆加固处理包括用GetString函数替换字符串、混淆表达式、插入控制流、改写判断条件和插入反调试代码;运行加密源代码,在加密源代码的运行过程中监测加密源代码的受攻击状况,在加密源代码受到攻击时,调整加密源代码的加密程度。2.根据权利要求1所述的基于源混淆的IOS端安全加密控制方法,其特征在于,当根据所述安全性等级和所述全局数组格式选择数组生成方法时,安全性等级包括一级安全、二级安全和三级安全,数组生成方法包括一级生成方法、二级生成方法和三级生成方法,其中,各安全性等级的安全性由低到高的排序为一级安全、二级安全、三级安全,数组生成方法的混淆程度由低到高的排序为三级生成方法、二级生成方法、一级生成方法,当安全性等级为一级时,选定一级生成方法对全局数组进行转换,当安全性等级为二级时,选定二级生成方法对全局数组进行转换,当安全性等级为三级时,选定三级生成方法对全局数组进行转换。3.根据权利要求2所述的基于源混淆的IOS端安全加密控制方法,其特征在于,对所述虚假全局数组进行混淆加固处理,生成加密源代码,包括:收集字符串并将所述字符串存放在所述虚假全局数组中,用GetString函数替换字符串,生成一级加密源代码;随机选取一级加密源代码中的C/C++函数的部分运算表达式作为替换目标表达式,设置等价表达式将所述替换目标表达式替换成混淆运算表达式,生成二级加密源代码;在二级加密源代码中插入控制流,对所述控制流进行扁平化处理并重新组织,生成三级加密源代码;将三级加密源代码中的判断值为确定值的分支跳转判断条件改写为判断条件表达式,生成四级加密源代码;在四级加密源代码中随机选择一个函数或方法插入反调试代码,或在指定的类、类方法和实施方法插入反调试代码,生成加密源代码。4.根据权利要求3所述的基于源混淆的IOS端安全加密控制方法,其特征在于,当设置等价表达式将所述替换目标表达式替换成混淆运算表达式时,所述等价表达式根据复杂度由高到低划分为一级表达式、二级表达式和三级表达式,在进行一次混淆时,使用所述一级表达式对替换目标表达式进行替换。5.根据权利要求4所述的基于源混淆的IOS端安全加密控制方法,其特征在于,当加密源代码受到攻击,调整加密源代码的加密程度时,将安全性等级调整为安全性评估较低的新安全性等级,并根据新安全性等级选定新数组生成方法,生成新虚假全局数组,并对所述新虚假全局数组进行混淆加固处理,生成新加密源代码并运行,在新加密源代码的运行过程中监测新加密源代码的受攻击状况。6.根据权利要求5所述的基于源混淆的IOS端安全加密控制方法,其特征在于,当降低安全性等级时,若安全性等...

【专利技术属性】
技术研发人员:邢青何叶曹敏
申请(专利权)人:新国脉数字文化股份有限公司
类型:发明
国别省市:

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

1