前言

自己做iOS开发也有几年的时间了,平时做完项目基本就直接打包上传到Appstore上,然后做上架操作了。但是最近,客户方面提出了代码安全的要求。说是要做代码混淆,这方面的工作之前从来没有接触过。然后就上网查了一下,原来有很多应用程序都做了代码混淆。看来是我固步自封了......

起因

使用classdump对原程序进行dump,可以dump出所有源程序的函数所有信息:源程序所有函数类型,变量全部泄露。这样的话,让攻击者,也就是黑客们了解了程序结构方便逆向。因为在工程中,我们这些变量或函数命名都是有一定可读性的,例如跟用户名相关的,那一般里面会有 userName,跟密码相关的一般会有passWord,这样定义也是为了我们自己代码可读性更强,我们修改的时候才更加的方便。但是我们相信,这么个定义法,我们只是希望方便我们自己,我们可不希望方便黑客们去破解我们的APP。 总结出来就是一句话:“会把你项目中的所有方法和变量都罗列出来”。

开始混淆:

1.

在进行代码混淆之前,我们需要在我们的项目中增加两个文件:confuse.sh&func.list
我们打开我们的终端命令行

先cd到你项目的路径下,然后回车
然后在终端中分别输入 touch confuse.shfunc.list然后回车
这个时候打开我们的项目文件夹,就能看到多了两个文件。这个时候我们打开我们的工程,把我们创建的这两个文件添加到项目中去

2

这个时候我们点击我们的confuse.sh文件可以看到里面的内容是空的,我们要填一些代码进去,点这个链接地址iOS安全攻防(二十三):Objective-C代码混淆可以把这位大神的代码粘贴到自己的confuse.sh文件中

3

在项目中添加一个.PCH文件。如果你说你不知道怎么添加.pch,没关系。这里有个链接地址能帮到你ios中pch文件的创建与配置
成功添加.pch文件之后,我们就要在.pch文件中添加这么一句代码#import"codeObfuscation.h 然后我们编译一下,是不是报错了?是不是这样的?

我们先把报错的代码注释掉,然后去项目的 Build Phases中的左上角的 +号,选中那个 New Run Script Phase,然后如下图所示,把你的 confuse.sh文件的地址写进去 然后返回我们的PCH文件,把我们刚才注释的那行代码打开,然后再编译一下子,是不是通过了。这个时候就证明,代码混淆的前期工作,我们已经做好了。

4

然后接下来的就是如何进行代码混淆了。

这个时候你就找到一个你想要混淆的类(.h .m)文件都可以。把你想混淆的代码复制一下,然后粘贴到我们的func.list文件中去。然后编译一下,然后把切换到这个界面

我们就可以看到,我们定义的属性或者方法名都被混淆了。

5

打完收工,Over!!!!!

6

注意:该方法只能针对有.m.h的类进行混淆,静态库等只有.h文件的没法进行混淆

7

传送门:Objective-C代码混淆

iOS 初探代码混淆(OC)相关推荐

  1. Python-编写Python脚本进行iOS代码混淆(iOS防黑加固之代码混淆篇)

    前言 最近一直在看Python,也很喜欢Python的灵活性:今天主要想说的是iOS的代码混淆,为什么想做代码混淆?为了APP的安全,为了防止别人破壳轻易破解我们代码:还有就是做 马甲包 了,我们知道 ...

  2. iOS代码混淆原理初探

    我们在手游平台SDK的iOS版本中, 除了AppStore官方支付之外还集成了第三方支付(微信支付H5和支付宝支付H5版本). 如果用于企业签,不需要做处理,直接使用即可. 但是如果需要上架AppSt ...

  3. iOS应用安全之代码混淆实现篇

    1.iOS应用安全之代码混淆设计篇 2.iOS应用安全之代码混淆实现篇 针对设计篇描述的大致思路,现在针对各个问题点,给出实现方法 该脚本大致使用的工具如下:vi.grep.sed.find.awk. ...

  4. APP加密,ios代码混淆工具,虚拟化技术 适用于移动应用程序的虚拟化加密软件

    概述: KiwiVM是用于移动应用程序的虚拟化加密软件. 它基于Clang编译器扩展,并且在编译项目时虚拟化指定的函数.借助自定义CPU指令的功能,一旦对代码进行加密并且从未解密,攻击者将无法恢复代码 ...

  5. oc代码混淆_OC代码混淆工具

    之前用python写了一个OC代码混淆脚本(python脚本),每次运行不方便,且其他人使用起来困难,就尝试写了一个mac工具. 工具地址:点我下载   密码:2405 现阶段工具还处于初级阶段,功能 ...

  6. ios APP加密探究几维安全iOS 代码混淆效果参考

    几维安全ios代码混淆效果参考: 什么是加密 加密是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作.大多数病毒就是基于此原理. 加密作用 加壳的程序可以有效阻止对程序 ...

  7. iOS安全攻防(二十三):Objective-C代码混淆

    iOS安全攻防(二十三):Objective-C代码混淆 class-dump可以很方便的导出程序头文件,不仅让攻击者了解了程序结构方便逆向,还让着急赶进度时写出的欠完善的程序给同行留下笑柄. 所以, ...

  8. oc代码混淆_iOS 代码混淆

    一般做了防调试的话,被调试进程会退出的,是防动态分析措施. 代码混淆加花这些是防静态分析措施. 反调试是防动态分析措施. 混淆的方法 方法名混淆其实就是字符串替换,有2个方法可以,一个是#define ...

  9. ios代码混淆小工具

    一  绪言 写在前面的话:之前做了五年ios开发,现在转了开发方向(数据科学/大数据),今天帮以前ios开发小组的同学,写了一个ios代码混淆小工具,下面介绍下. 这种方式不是最佳方案,更好的方案是c ...

最新文章

  1. 构建静态服务器_为静态网站构建无服务器联系表
  2. 交换机多生成树协议MSTP
  3. mariadb数据库备份与恢复
  4. ip addr 相关操作
  5. 【NLP】NLP实战篇之bert源码阅读(run_classifier)
  6. Ping命令及其协议
  7. Android 适配(一)
  8. Redis Sentinel
  9. restful api接口规范_Restful API设计规范
  10. Spring Boot 2 - 初识与新工程的创建
  11. Android Studio Gradle Plugin开发入门指南
  12. Audio-PCM设备的创建
  13. the7主题footer.php,the7主题的安装和数据导入
  14. 陈果“有空来坐坐...”
  15. 找不到工作的测试员一大把,大厂却招不到优秀软件测试员?高薪难寻测试工程师。
  16. Spring Security OAuth2:整合jwt
  17. python实现数据恢复软件_恢复python
  18. 3、u-boot-2016 - board_init_f
  19. ipa文件包获取服务器地址,ipa文件包获取服务器地址
  20. 【MFC】学习笔记:常用控件之组合框(Combo Box)

热门文章

  1. 遥感影像云检测-传统方法-:Haze Optimized Transformation(HOT)方法
  2. Nginx基础入门(二)
  3. uni-app使用 (从下载到项目启动 流程 踩坑)
  4. 《网络空间测绘技术与实践》正式发售,让网络空间作战“有图可依”
  5. (转)iOS应用架构谈 本地持久化方案及动态部署
  6. 去噪自动编码器(DAE)
  7. 每日一题之后缀表达式
  8. 4.Python复杂数据类型之字典
  9. 解决“你的设备不支持Google Play服务”而无法运行App的问题
  10. tomcat配置SSL报错解决:java.lang.IllegalArgumentException: Invalid character (CR or LF) found in method nam