A-A+

iOS代码混淆

2021年02月14日 iOS原创文章 暂无评论
博客主机

前言

今天主要想说的是iOS的代码混淆,为什么想做代码混淆?为了APP的安全,为了防止别人破壳轻易破解我们代码;还有就是做马甲包了,我们知道马甲包的市场需求很大,但是不能花费过多的精力在开发上,毕竟只是个马甲,没必要花费太多的成本!

混淆工具

网上搜了一下,开源免费的混淆都在转载念茜大姐大的sh脚本的混淆方法,或者在念茜的脚本基础上二次开发,大家去看过就知道念茜的这篇博客是在14年写的,那时我刚做iOS没多久?,而且那时候中国区审核还没有那么严格,若果你现在还使用那种方法进行混淆,你肯定会收到苹果的2.3.1 大礼包?,所以我们还是探索别的混淆方法吧,不要再挖坟了!

ZFJObsLib主要是通过Python写的混淆工具,具体功能有方法混淆、属性混淆、类名混淆、添加垃圾代码、自动创建垃圾类、删除注释、修改资源文件Hash值、加密字符串、翻新资源名、模拟人工混淆、混淆文件名、混淆文件目录、混淆词库、混淆日志、映射列表、敏感词过滤、图片压缩、爬虫服务、修改项目名、翻新项目UUID、自动备份混淆项目、自定义忽略属性、自定义忽略函数、自定义忽略类名、界面颜色魔改、APP图片主题色替换,具体的如下:

下载地址

ZFJObsLib混淆工具全面支持OC与Swift语言开发的项目!!!

(1)下载地址:

  https://gitee.com/zfj1128/ZFJObsLib_dmg(主更新地址)

  https://github.com/zfjsyqk/ZFJObsLib(备更新地址)

(2)使用问答:

  http://zfjobslib.top/qahelp.html

混淆日志

进行混淆的部分日志,混淆的时候会自动生成混淆日志《ZFJ混淆日志.log》,便于开发者修改部分报错,在混淆界面下方的《打开混淆日志》按钮打开:

忽略路径

我们在混淆的时候,我们可以根据自己的实际情况选择需要忽略混淆的文件或者文件夹,所以我添加了混淆忽略文件和忽略文件功能,如下图:特别说明:多级目录混淆情况,如果想忽略的目录在多个文件夹中有重名的,比如你想忽略Home下面的Models文件夹,但是在Home文件夹和Mine文件夹都有个Models文件夹,你可以这样设置'Home/Models'就OK了!So Easy!☝️☝️☝️

如果想过滤拥有相同前缀的类,比如ZFJ_TouchClass.h/ZFJ_TouchClass.m/ZFJ_MyButton.h/ZFJMyButton.m,可以设置‘ZFJ+’就可以对以‘ZFJ_’开头的类进行过滤忽略;

如果想过滤拥有相同后缀的类,比如ZFJName.h/ZFJName.m/ABCName.h/ABCName.h,可以设置‘+Name’就可以对以‘Name’结尾的类进行过滤忽略。

注意:很多人都在问,为什么我明明设置了忽略,为什么右边的日志还会打印被忽略的文件或者文件夹?需要注意的是,忽略只针对属性混淆、函数混淆、类名混淆才有用,忽略是不回去读取混淆原有的属性、函数、类名,但是并不意味着不去跑一边了!

还有就是pod是无法混淆的,因为pod需要管理员权限才能修改,所以软件没有权限修改,如果想混淆,把pod里面的库拖进工程中! 使用问答

在使用的时候要是有什么问题,可以先看看《ZFJObsLib-iOS代码混淆软件使用问答(Q&A)》

在软件可以在系统栏-帮助-使用问答查看,如下图:

软件功能

✍️✍️✍️ZFJObsLib有很多功能,大家可以根据自己的实际使用情况自行选择!✍️✍️✍️

在此附上一些过包大佬常用的功能截图,仅供参考,这些大佬最牛逼的一个月过了三四十个,还有人一天一份代码混淆五次过了四个,一个是因为bug:

给我留言

Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录