`
shuai1234
  • 浏览: 971759 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

iOS安全–浅谈关于iOS加固的几种方法,代码混淆,类名方法名混淆等

 
阅读更多

转自:http://www.blogfshare.com/ios-protect.html

 

 

关于IOS安全这方面呢,能做的安全保护确实要比Android平台下面能做的少很多。

只要你的手机没越狱,基本上来说是比较安全的,当然如果你的手机越狱了,可能也会相应的产生一些安全方面的问题。就比如我在前面几篇博客里面所介绍的一些IOS逆向分析,动态分析以及破解方法。

但是尽管这样,对IOS保护这方面来说,需求还不是很乏,所有基于IOS平台的加固产品也不是很多,目前看到几种关于IOS加固的产品也有做的比较好的。

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

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

不久前看到偶然看到一个白盒加密的应用http://kiwisec.com/ 也下下来试用了一下,感觉要比上面两个从使用上方面了许多,而且考虑的东西也是比较多的。

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

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

一、字符串加密:

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

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

二、类名方法名混淆

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

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

三、程序代码混淆

现状:目前的IOS应用找到可执行文件然后拖到Hopper Disassembler或者IDA里面程序的逻辑基本一目了然。

加固:可以基于Xcode使用的编译器clang,然后在中间层也就是IR实现自己的一些混淆处理,比如加入一些无用的逻辑块啊,代码块啊,以及加入各种跳转但是又不影响程序原有的逻辑。可以参考下开源项目:https://github.com/obfuscator-llvm/obfuscator/  当然开源项目中也是存在一些问题的,还需自己再去做一些优化工作。

四、加入安全SDK

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

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

 

当然除了这些外,还有很多方面可以做加固保护的,相信大家会慢慢增加对IOS应用安全的意识,保护好自己的APP。

 

分享到:
评论

相关推荐

    iOS马甲包代码混淆工具

    iOS代码混淆加密工具 制作iOS马甲包,包括代码加密、代码混淆、修改方法名、修改类名、生成垃圾代码、修改工程名等 https://zfj1128.blog.csdn.net/article/details/95482006

    iOS代码混淆工具:Uniapp代码混淆工具和react-native代码混淆

    ConfuseSoftware)是一款运行在MAC OS平台的App、完美支持Objc和Swift、U3D、Flutter、Cocos2dx项目代码的自动翻新(混淆)、支持文件夹名称、文件名、修改资源文件hash值、类名、方法名、属性名、添加混淆函数方法体、...

    iOS混淆代码工具

    对iOS工程进行混淆,通过修改工程名,混淆文件名,类名,方法名,以及生成辣鸡代码来实现对工程的修改

    iOS代码混淆,提供Object-C混淆python脚本

    iOS代码混淆,提供Object-C混淆python脚本 # 使用方法 安装python3 打开命令行,在命令行中输入:python3 脚本路径 按回车,脚本运行后拖入工程文件目录,等待脚本运行完成,重新打开项目检查是否正常编译和运行。 ...

    iOS代码自动翻新(混淆)专家.zip

    u3d、cocos2dx、iOS代码混淆、自动翻新专家(WHC_ConfuseSoftware)是一款新一代运行在MAC OS平台的App、完美支持Objc和Swift、U3D、Cocos2dx项目代码的自动翻新(混淆)、支持文件夹名称、文件名、修改资源文件hash值、...

    ios混淆代码工具及垃圾代码生成器工具

    1. **类名和方法名混淆**:混淆的核心是改变代码的可读性,使得外界难以理解代码逻辑。这通常通过修改类名、方法名和变量名,使用无意义或随机的字符组合来实现。例如,将原本清晰易懂的`ViewController`改为`aBcD...

    xcode 混淆工具

    "xcode 混淆工具"指的是使用Xcode进行代码混淆的技术,这是一种安全措施,可以增加逆向工程的难度,保护应用程序的源代码不被轻易理解和修改。在本文中,我们将深入探讨代码混淆的概念、目的以及如何在Xcode中实现...

    iOS混淆代码

    在iOS开发中,混淆代码是一种常见的安全措施,用于保护应用程序的源代码不被轻易逆向工程分析。混淆技术的主要目标是使代码变得难以理解和调试,从而增加破解的难度。本文将深入探讨iOS混淆代码的相关知识点。 一、...

    【腾讯御安全】浅谈安卓开发代码混淆技术[归类].pdf

    【腾讯御安全】浅谈安卓开发代码混淆技术 在当今快速发展的移动互联网时代,应用程序的安全性成为了开发者关注的焦点。由于Java层的逆向分析工具日益成熟,许多开发者选择将核心代码迁移到Native层,以增强应用的...

    ios混淆工具

    xcode混淆代码工具,利用mac端打开操作,混淆ios项目工程代码,更改类名,资源名,方法名等。

    浅谈用于Java软件保护的代码混淆技术研究与实现.zip

    常见的Java代码混淆工具有ProGuard、Zelix KlassMaster、Allatori等,它们提供了一系列的混淆策略,包括类名混淆、方法名混淆、变量名混淆、字符串加密、控制流混淆等。类名混淆会将类名改为无意义的字母数字组合,...

    自动混淆OC类名Python脚本

    自动混淆OC类名Python脚本

    IOS混淆完美运行版

    代码混淆是一种安全技术,通过改变源代码中的变量名、函数名、类名等标识符,使其变得难以理解,同时保持程序原有的功能不变。这样可以有效地防止黑客通过反编译手段获取应用的核心逻辑,增加攻击者分析和篡改应用...

    Python写的OC混淆工具

    本文将深入探讨一个基于Python编写的Objective-C(OC)代码混淆工具,该工具能够帮助开发者对类名、方法名进行混淆,以增强应用的安全性。 标题中的"Python写的OC混淆工具"指的是利用Python编程语言实现的一个专门...

    ZFJ代码混淆工具-V2.0.4.dmg

    iOS代码混淆工具,解决代码重复上架AppStore、代码多次上架AppStore、审核4.3、other、机审4.3等问题; 代码方面:属性混淆、函数混淆、类名混淆、加密字符串、关键字混淆、删除注释、xib和sb的特殊处理 资源文件...

    Android 实现代码混淆的实例

    在Android开发中,代码混淆是一项重要的安全措施,它主要用于保护应用程序源代码,使其难以被逆向工程解析。本文将深入探讨Android代码混淆的原理、实现方法以及如何编写混淆规则。 首先,代码混淆(Obfuscated ...

    swift-IPHCodeObfuscation用于项目工程的代码混淆

    `IPHCodeObfuscation` 实现混淆的方式是通过自定义脚本,将类名、属性名、方法名等关键代码片段转换为难以理解的宏定义。这样,即使有人尝试反编译你的应用,看到的也将是一堆无意义的字符序列,从而降低了代码被...

Global site tag (gtag.js) - Google Analytics