首页 > 其他分享 >iOS安全加固探讨:代码混淆、类名方法名混淆等方法

iOS安全加固探讨:代码混淆、类名方法名混淆等方法

时间:2023-09-06 15:57:34浏览次数:34  
标签:混淆 加密 iOS 字符串 加固 类名

640.png
摘要:本文探讨了iOS平台下的安全保护,以及几种常见的加固方法,包括字符串加密、类名方法名混淆、程序代码混淆和加入安全SDK等。通过这些方法,我们可以有效地提高iOS应用的安全性。

引言:

随着智能手机的普及,对移动应用的安全性要求越来越高。而在iOS平台上,相比于Android平台,能够进行的安全保护措施相对较少。只要手机没有越狱,基本上来说是比较安全的。但是一旦手机越狱,可能会带来一些安全方面的问题。因此,对于iOS应用的安全保护仍然十分必要。

iOS应用的加固产品相对较少,但目前已经有一些关于iOS加固的产品做得比较好。本文将介绍几种常见的iOS加固方法,以及一些相关的加固工具和产品。

最开始关于爱加密首创的IOS加密,个人感觉这只是一个噱头而已,因为没有看到具体的工具以及加固应用,所以也不知道它的效果怎么样了。

后来在看雪上面看到一个 有关于IOS加密的工具,但是感觉用起来太麻烦了,而且让产品方也不是很放心,要替换xcode默认的编译器。

不久前看到偶然看到一个IPA Guard的应用 https://www.ipaguard.com/也下下来试用了一下,感觉要比上面两个从使用上方面了许多,而且考虑的东西也是比较多的,最后加固后还有重签名功能。

IPA guard主界面:

gnmk.png

重签名界面:

pzwj.png
好了,看了别人做的一些工具,这里大概说下都有哪些加固方法以及大概的实现吧,本人也是刚接触这个方面不就,可能分析的深度没有那么深入,大家就随便听听吧。

现在的加固工具总的来说都是从以下几个方面来做的:

一、字符串加密:

**现状:**对于字符串来说,程序里面的明文字符串给静态分析提供了极大的帮助,比如说根据界面特殊字符串提示信息,从而定义到程序代码块,或者获取程序使用的一些网络接口等等。

**加固:**对程序中使用到字符串的地方,首先获取到使用到的字符串,当然要注意哪些是能加密,哪些不能加密的,然后对字符串进行加密,并保存加密后的数据,再在使用字符串的地方插入解密算法,这样就很好的保护了明文字符串。

二、类名方法名混淆

**现状:**目前市面上的IOS应用基本上是没有使用类名方法名混淆的,所以只要我们使用class-dump把应用的类和方法定义dump下来,然后根据方法名就能够判断很多程序的处理函数是在哪。从而进行hook等操作。

**加固:**对于程序中的类名方法名,自己产生一个随机的字符串来替换这些定义的类名和方法名,但是不是所有类名,方法名都能替换的,要过滤到系统有关的函数以及类,可以参考下开源项目: https://github.com/Polidea/ios-class-guard

三、程序代码混淆

**现状:**目前的IOS应用找到可执行文件然后拖到Hopper

**加固:**可以基于Xcode使用的编译器clang,然后在中间层也就是IR实现自己的一些混淆处理,比如加入一些无用的逻辑块啊,代码块啊,以及加入各种跳转但是又不影响程序原有的逻辑。

四、加入安全SDK

**现状:**目前大多数IOS应用对于简单的反调试功能都没有,更别说注入检测,以及其它的一些检测了。

**加固:**加入SDK,包括多处调试检测,注入检测,越狱检测,关键代码加密,防篡改等等功能。并提供接口给开发者处理检测结果。

总结:

虽然上述方法可以有效地提高iOS应用的安全性,但还有许多其他方面可以进行加固保护。相信随着对iOS应用安全意识的增加,我们将会采取更多的措施来保护自己的应用。

标签:混淆,加密,iOS,字符串,加固,类名
From: https://www.cnblogs.com/awqssew/p/17682496.html

相关文章

  • IOS-开发获取tableview中cell的最终渲染宽度
    如图 我想要实现一个cell,里面有一个白色的消息区域宽度是整个cell的宽度减少20pt, 于是我写了_msgview.frame=CGRectMake(10,_time.bounds.origin.x+30,self.contentView.bounds.size.width-20,80);贴上完整代码-(instancetype)initWithStyle:(UITableViewCellStyle)......
  • axios封装后发get请求
    ruoyi的前端对axios进行了封装,让我们发get请求或者是post请求更加方便了。ruoyi对axios的封装在下面文件中:打开文件,可以看到它有三个显眼的方法,分别是request拦截器、response拦截器和通用下载方法。request拦截器对我们发送的请求进行了封装,当我们发送Get请求,那么我们携带参数......
  • iOS - Info.plist 隐私权限配置
    封装了常用的隐私权限判断(定位服务,通讯录,日历,提醒事项,照片,蓝牙,麦克风,语音识别,相机,健康,媒体与AppleMusic)和通知的注册和判断。权限介绍隐私数据对应key值提示语使用期间访问位置Privacy-LocationWhenInUseUsageDescriptionAPP需要您的同意,才......
  • iOS代码加固与保护方法详解 - 提升iOS应用安全性的关键步骤
    摘要:作为一名从事iOS开发多年的技术博主,长期以来我都没有重视代码加密和加固。然而,最近了解到使用IPAGuard工具可以对iOS应用进行混淆保护,我开始重新审视iOS应用的安全性问题。本文将详细介绍如何使用IPAGuard工具进行代码加固和保护,以提高iOS应用的安全性和抵御逆向分析的风险。......
  • iOS代码加固与保护方法详解 - 提升iOS应用安全性的关键步骤
    摘要:作为一名从事iOS开发多年的技术博主,长期以来我都没有重视代码加密和加固。然而,最近了解到使用IPAGuard工具可以对iOS应用进行混淆保护,我开始重新审视iOS应用的安全性问题。本文将详细介绍如何使用IPAGuard工具进行代码加固和保护,以提高iOS应用的安全性和抵御逆向分析的风险......
  • 直播带货源码,iOS 获取图片主题色
    直播带货源码,iOS获取图片主题色 -(void)getMostColorFormImage:(UIImage*)image{  WEAKSELF  [imagegetPaletteImageColorWithMode:ALL_MODE_PALETTEwithCallBack:^(PaletteColorModel*recommendColor,NSDictionary*allModeColorDic,NSError*error){   ......
  • vue3+ts Axios封装—重复请求拦截
    创建好vue3项目1.安装Axios与ElementPlusAxios安装npminstallaxiosElementPlus安装官网入口:https://element-plus.gitee.io/zh-CN/npminstallelement-plus--saveElement主要用到信息提示与全屏加载动画2.在src目录下创建api文件夹和utils文件夹api......
  • IOS隐私政策
     iOS隐私政策本应用尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息。但本应用将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本应用不会将......
  • iOS接入IJKPlayer遇到的问题汇总
    1、播放编码mpeg视频有声音无画面exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS--enable-decoder=mpegvideo"2、播放编码mpeg-4+AAC视频有声音无画面exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS--enable-decoder=mpeg4"参考链接:1、iOS制作ijkplayer静态库......
  • 深入了解Axios:现代化的HTTP请求库
    简介:Axios是一个基于Promise的现代化HTTP请求库,它在前端开发中被广泛使用。本文将深入探讨Axios的特性、用法以及为什么它成为开发者的首选。一、什么是Axios?Axios是一个基于Promise的HTTP客户端,用于浏览器和Node.js环境中发送HTTP请求。它是一个简洁、直观且功能强大的库,提供了......