首页 > 其他分享 > ios安全加固 ios 加固方案

ios安全加固 ios 加固方案

时间:2023-11-10 15:24:17浏览次数:33  
标签:方案 加密 混淆 代码 ios 加固 方法 APP 调试

目录

 

一、iOS加固保护原理

1.字符串混淆

2.类名、方法名混淆

3.程序结构混淆加密

4.反调试、反注入等一些主动保护策略

二 代码混淆步骤

1. 选择要混淆保护的ipa文件

2. 选择要混淆的类名称

3. 选择要混淆保护的函数,方法

4. 配置签名证书

5. 混淆和测试运行


 

一、iOS加固保护原理

从上面的分析来看,我们可以从以下几个方面来保护我们的APP:

1.字符串混淆

对应用程序中使用到的字符串进行加密,保证源码被逆向后不能看出字符串的直观含义。

2.类名、方法名混淆

对应用程序的方法名和方法体进行混淆,保证源码被逆向后很难明白它的真正功能。

3.程序结构混淆加密

对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低。

4.反调试、反注入等一些主动保护策略

这是一些主动保护策略,增大破解者调试、分析APP的门槛。

4.1字符串加密字符串会暴露APP的很多关键信息,攻击者可以根据界面显示的字符串,快速找到相关逻辑的处理函数,从而进行分析破解。加密字符串可以增加攻击者阅读代码的难度以及根据字符串静态搜索的难度。

比如一个APP中有如下的一些字符串定义在代码文件中:

经过加密后,代码文件变成如下的形式:

里面已经没有明文的字符串了,全是用byte的形式保存的,打包生成APP后,他们也就无法直观的看出实际内容了,这对破解者会造成巨大的难度:

4.2符号混淆符号混淆的中心思想是将类名、方法名、变量名替换为无意义符号,提高应用安全性;防止敏感符号被class-dump工具提取,防止IDA Pro等工具反编译后分析业务代码。

比如一款混淆后的APP,用IDA等工具打开,如下图所示:

“Labels”栏里,显示的这些符号,不管是类名还是方法名,谁也看不出来到底什么意思,这个函数到底是什么功能,就有点丈二和尚摸不着头脑的感觉,这就大大增加了破解者分析APP的难度。

4.3代码逻辑混淆代码逻辑混淆有以下几个方面的含义:

对方法体进行混淆,保证源码被逆向后该部分的代码有很大的迷惑性,因为有一些垃圾代码的存在;

对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低,这很容易把破解者带到沟里去;

它拥有和原始的代码一样的功能,这是最最关键的。

混淆前后的对比如下(左边是原始结构,右边是混淆后的结构):

下面以混淆工具 ipaguard为例:

无论是加密还是运行时虚拟机,最后都可以通过执行时调试把代码反向生成出来原来的代码,虽然能抵御低端的黑客攻击,但是对高端黑客却形同虚设。 代码混淆是通过修改源代码结构和变量名,使得代码难以被理解和反编译。这可以黑客获取应用程序的代码,也会很难理解它,不管他是高端还是低端的黑客,目前都没有有效的方法来还原为原来的代码,是公认的非常有效的方法之一。下面以ipaguard为例子介绍怎么对ipa文件中的类、方法、方法参数、变量等进行全面修改混淆,使其名称成为没有意义的乱码,极大地增加应用破解的难度。ipaguard代码混淆工具支持对OC、Swift、Flutter、H5、HBuilder、Unity3D、Cocos2dx等各种开发平台开发的app。

二 代码混淆步骤

1. 选择要混淆保护的ipa文件

 

 

 

 

2. 选择要混淆的类名称

选择左侧的代码模块中的OC类名称或者Swift类名称,选择IPA种要混淆的二进制文件,然后勾选可执行文件代码里面的类名称。如果类太多可以使用搜索查看功能,ipaguard提供了级别选择,名称搜索,已选未选过滤来帮助配置混淆对象。

 

 

 

 

 

3. 选择要混淆保护的函数,方法

选择左侧代码模块下的oc方法或者swift方法,点击右侧的选择文件选取一个可执行二进制文件,勾选需要混淆保护的方法和函数。ipaguard提供了风险等级过滤,名称搜索过滤,根据类名称过滤条件来辅助配置混淆目标

 

 

 

 

 

4. 配置签名证书

点击左侧的签名配置,设置ios签名证书,描述文件等信息。测试阶段用开发证书,这样可以方便安装到测试机子上检验是否测试后的app运行正常;最终配置测试ok,发布的时候再改成发布证书,混淆配置完后可以提交上架。 

 

 

 

 

5. 混淆和测试运行

点击开始处理按钮,ipaguard将对ipa中选中的内容进行混淆保护,并安装混淆好的ipa到手机上,运行如果ok,点击保存配置,下次直接加载配置即可,无需每次配置要混淆的内容。 

 

 

 

ipaguard在做混淆这块还是做的很人性化的,混淆目标可控,强度可控,极大地简化了配置混淆内容的过程,可视化的操作也非常的方便。

3.4URL编码加密对程序中出现的URL进行编码加密,防止URL被静态分析。

3.5网络传输数据加密对客户端传输数据提供加密方案,防止通过网络接口的拦截获取数据。

3.6主动保护策略除了上面的一些被动保护方法,我们还可以加入一些主动的防护机制,比如反调试等。

iOS平台下的Anti-Debug方法一般有以下一些:

检查进程的状态是否为 P_TRACED。

调用ptrace请求来检查进程是否被调试。由于可能被攻击者绕过该方法的调用,在应用的多处增加ptrace函数会提高应用的安全性。

通过sysctl查看信息进程里的标记,判断自己是否正在被调试。sysctl是用以查询内核状态的接口,并允许具备相应权限的进程设置内核状态。

iOS下的这些方法,相对于Linux下的方法要少很多,例如fork一个子进程,ptrace父进程进行检测方式不再奏效。而且,要完全防止程序被调试或者被逆向,理论上是不可能的,但可以增加破解者调试的难度。

总之,添加以上的一些保护措施后,iOS APP的安全性会获得很大的增强,大大提高了破解者破解的难度。对于iOS开发者来说,有必要了解这些措施,特别是针对一些金融、证券类APP的开发,保护方面的需求比较大,比如国内某知名移动支付工具就添加了一些调试检测以及反调试的功能。

标签:方案,加密,混淆,代码,ios,加固,方法,APP,调试
From: https://www.cnblogs.com/sdges/p/17824178.html

相关文章

  • ​ iOS移动应用安全加固:保护您的App免受恶意攻击的重要步
    骤目录iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤摘要引言一、APP加固的概念二、APP加固方案的比较三、保护iOS应用的安全四、总结参考资料 摘要本文介绍了移动应用程序(App)加固的概念和流程,以及市场上几家知名的APP加固公司。同时提供了对iOSipa文件进......
  • 大型集团企业数据治理方案,以“应用驱动”的数据治理策略 | 行业方案
    数据治理是推动大型集团企业转型升级、提升竞争优势、实现高质量发展的重要引擎。通过搭建大数据平台,实现对业务系统数据的采集、清理、建模、整合,建立一个符合业务需求的数据决策平台,形成企业数字化转型关键能力,支撑数据赋能业务价值,最终推动组织及管理升级,实现数字化转型。以某......
  • 多维详述MediaBox互动直播AUI Kit低代码开发方案
    本专栏将分享阿里云视频云MediaBox系列技术文章,深度剖析音视频开发利器的技术架构、技术性能、开发能效和最佳实践,一起开启音视频的开发之旅。本文为MediaBox最佳实践篇,重点从互动直播AUIKit的核心能力、技术架构、快速集成等方面,介绍如何通过低代码快速接入互动直播视频业务。......
  • 多维详述MediaBox互动直播AUI Kit低代码开发方案
    本专栏将分享阿里云视频云MediaBox系列技术文章,深度剖析音视频开发利器的技术架构、技术性能、开发能效和最佳实践,一起开启音视频的开发之旅。本文为MediaBox最佳实践篇,重点从互动直播AUIKit的核心能力、技术架构、快速集成等方面,介绍如何通过低代码快速接入互动直播视频业务。......
  • 永久禁用Windows Defender代码方案(可恢复)【支持Windows10、Windows11】
    永久禁用WindowsDefender代码方案(可恢复)【支持Windows10、Windows11】https://blog.csdn.net/m0_60961651/article/details/131090391代码文件下载地址:https://cloud.189.cn/t/jaieM3raeYjy视频演示文件下载地址:禁用操作(PowerShell要以管理员身份运行,视频演示不规范):https://clo......
  • 云承载网中Border边界网络的对接方案
    业务背景在私有云的业务场景中,常见的通信包含了同VPC内虚机互访、不同VPC之间的虚机互访、VPC访问Underlay资源、VPC访问Internet资源、VPC提供服务,被Internet访问、VPC与专线网络之间互访等;实际应用中,大多数云业务通信场景都需要依赖安全、NAT、负载等边界设备组合使用来实现,云承......
  • 谈谈压测方案的那点事 | 京东物流技术团队
    前言在现阶段大促备战的压测不算是一件新鲜事,已经不存在什么技术瓶颈或者资源问题,每个团队都有很多人能够执行性能测试,在一些团队也已经落地了日常常态化,但压测也没有简单到只在压测平台上设置参数、运行脚本,然后去看压测报告中某个指标是否满足压测目标那么简单,我平时也跟一些同......
  • 工程车识别AI视觉算法方案
    工程车识别AI视觉算法方案https://mp.weixin.qq.com/s/jXXTZCcFNrZUtpzVyQ4wCg工程车识别AI视觉算法方案原创 郭桂珊刘洲 OPENAIStore 2023-10-2514:14 发表于广东收录于合集#智慧交通5个#算法20个#ai20个工程车识别算法主要用于城市道路、建筑工地等有禁止......
  • 使用金蝶系统报错解决方案,金蝶软件报错,使用推荐的浏览器版本
    1、出现报错“建议您使用推荐的浏览器版本,以便获得更好的产品体验”如下图,2、低版本的谷歌浏览器使用老是卡死,取消硬件加速。3、低版本的谷歌浏览器可以在百度网盘里面找。......
  • OpenFeign 接口调用问题及解决方案
    问题描述如果在同一个工程中出现两个OpenFeign接口使用一样的服务名称会报以下错误:Description:Thebean'optimization-user.FeignClientSpecification',definedinnull,couldnotberegistered.Abeanwiththatnamehasalreadybeendefinedinnullandoverridin......