ZFJObsLib 更新阐明
https://gitee.com/zfj1128/ZFJ…
—————————————- 分割线 —————————————-
前言
明天次要想说的是 iOS 的代码混同,为什么想做代码混同?为了 APP 的平安,为了避免他人破壳轻易破解咱们代码;还有就是做马甲包了,咱们晓得马甲包的市场需求很大,然而不能破费过多的精力在开发上,毕竟只是个马甲,没必要破费太多的老本!
混同工具
网上搜了一下,开源收费的混同都在转载念茜大姐大的 sh 脚本的混同办法,或者在念茜的脚本根底上二次开发,大家去看过就晓得念茜的这篇博客是在 14 年写的,那时我刚做 iOS 没多久?,而且那时候中国区审核还没有那么严格,若果你当初还应用那种办法进行混同,你必定会收到苹果的 2.3.1 大礼包?,所以咱们还是摸索别的混同办法吧,不要再挖坟了!
ZFJObsLib 次要是通过 Python 写的混同工具,具体性能有办法混同、属性混同、类名混同、增加垃圾代码、主动创立垃圾类、删除正文、批改资源文件 Hash 值、加密字符串、翻新资源名、模仿人工混同、混同文件名、混同文件目录、混同词库、混同日志、映射列表、敏感词过滤、图片压缩、爬虫服务、批改我的项目名、翻新我的项目 UUID、主动备份混同我的项目、自定义疏忽属性、自定义疏忽函数、自定义疏忽类名、界面色彩魔改,具体的如下:
软件界面
ZFJObsLib 混同工具全面反对 OC 与 Swift 语言开发的我的项目!!!
下载地址:
Gitee:https://gitee.com/zfj1128/ZFJ…
GitHub:https://github.com/zfjsyqk/ZF…
应用教学视频:
链接:https://pan.baidu.com/s/1pqUk… 明码:9sll
ZFJObsLib 软件的次要界面如下:
混同日志
进行混同的局部日志,混同的时候会主动生成混同日志《ZFJ 混同日志.log》,便于开发者批改局部报错,在混同界面下方的《关上混同日志》按钮关上:
疏忽门路
咱们在混同的时候,没必要全副进行混同,特地是第三方库,或者 Pods 治理的第三方库;毕竟混同的越多问题也就越多和也越费时,所以我增加了混同疏忽文件和疏忽文件性能,如下图:
特地阐明:多级目录混同状况,如果想疏忽的目录在多个文件夹中有重名的,比方你想疏忽 Home 上面的 Models 文件夹, 然而在 Home 文件夹和 Mine 文件夹都有个 Models 文件夹,你能够这样设置 ’Home/Models’ 就 OK 了!So Easy!☝️☝️☝️
如果想过滤领有雷同前缀的类,比方 ZFJ_TouchClass.h/ZFJ_TouchClass.m/ZFJ_MyButton.h/ZFJ_MyButton.m, 能够设置‘ZFJ_+’就能够对以‘ZFJ_’结尾的类进行过滤疏忽;
如果想过滤领有雷同后缀的类,比方 ZFJName.h/ZFJName.m/ABCName.h/ABCName.h, 能够设置‘+Name’就能够对以‘Name’结尾的类进行过滤疏忽。
应用问答
在应用的时候要是有什么问题,能够先看看《ZFJObsLib-iOS 代码混同软件应用问答(Q&A)》
在软件能够在零碎栏 - 帮忙 - 应用问答查看,如下图:
软件性能
✍️✍️✍️ZFJObsLib 有很多性能,大家能够依据本人的理论应用状况自行抉择!✍️✍️✍️
在此附上一些过包大佬罕用的性能截图,仅供参考,这些大佬最牛逼的一周过了五六个:
1. 办法混同
如果混同了零碎的办法,能够在办法过滤外面手动增加须要过滤的办法,自己也统计了上百个常见的零碎办法,然而必定不能统计全面笼罩,所以如果遇到没有笼罩的用户能够手动增加设置!办法过滤性能在主菜单首页!
2. 属性混同
如果你的命名和零碎属性雷同,导致系统属性被混同,比方属性字段 title 和零碎的一些控件的 title 始终,所以在混同的过程中会把零碎的属性给混同了,导致报错,同样你能够再属性过滤中增加属性字段 title(我曾经增加好 title 这个字段了🤗),所以你遇到其余的状况你能够本人增加!
3. 类名混同
类名混同也会导致一些和零碎反复,比方你的类名命名为‘TabBarController’,然而在零碎中有一个 UITabBarController, 所以在类名混同的时候就会导致混同出错,通样你能够应用类名过滤的性能,当然个别类名混同基本上是没错的!🎉🎉🎉
4. 增加垃圾代码
在.h 文件中裸露垃圾代码
垃圾代码的调用与实现
5. 创立垃圾类
具体请看:?《Python-ZFJObsLib 完满生成 iOS 垃圾代码》https://zfj1128.blog.csdn.net…
6. 删除正文
7. 敏感词过滤
过滤博彩类敏感词
8. 批改 Hash 值
针对我的项目中的资源文件,咱们能够通过批改 Hash 的形式来进行混同,运行如下:
9. 加密字符串
编译前的代码如下:
编译后的代码如下:
加密混同反编译前后 Hopper 比照如下:
咱们能够看到再通过 Hopper 看不到硬编码了!???
10. 翻新资源名
找到工程中的图片资源并翻新,而后主动替换代码中的援用。
这里如果有图片加载不进去的状况,很大可能是你在代码中援用图片名是采纳字符串拼接的形式,导致资源文件被批改了,然而代码中找不到无奈批改的状况!🤓
11. 混同工程目录
👉为了保障目录混同的准确性,倡议把我的项目中空的目录都给删了;还有一种状况就是没有援用的文件夹也要删了,比方本地有这个目录然而我的项目没有援用!👈
12. 设置混同前缀
阐明:设置混同前缀,肯定要点击保留哦!!!✌️✌️✌️还有就是能够设置办法混同的后缀,如果不设置默认是 Fun!
属性混同、类名混同和办法混同反对只加前缀不批改原来名字的性能,只须要在设置的前缀前面加上‘#’就 OK 了,如下图:
13. 混同词库
ZFJObsLib 自带二十多万的字典词库,所以不必放心代码反复问题;如果你感觉获得词库单词目标性不强或者无意思,你能够自定义词库,自定义词库解学视频如下:
链接:https://pan.baidu.com/s/1iBc1… 明码:wadz
还能够通过读取混同词库来读取其余我的项目的词库来混同本人的我的项目,在混同界面的零碎栏 - 设置 - 词库抉择 - 读取词库;
14. 读取 UUID 性能 / 翻新我的项目 UUID 性能
因为不晓得 Xcode 的 UUID 具体生成规定,此项性能旨在从其余我的项目中读取 UUID,不便创立垃圾类和批改 UUID 应用;在混同的过程中如果应用了创立垃圾类和批改 UUID 的性能,倡议最好应用此性能读取一个其余我的项目的 UUID,以达到更实在的目标;最好的应用办法是用 Xcode 新建一个 iOS 我的项目,而后本人轻易创立几个类或者试图,接着再此性能读取该新建我的项目的 Xcodeproj 来获取 UUID;如果在混同过程中应用到的 UUID 数量大于读取的 UUID 数量,则会先紧着读取的 UUID 应用,当读取的 UUID 应用完当前,ZFJObsLib 会主动依照本人的规定创立 UUID(不举荐)!
倡议本人用 Xcode 创立一个我的项目,多创立几个类或者试图进行读取!
翻新 UUID 成果比照图
15. 自定义增加属性 / 办法 / 类名过滤字段
就拿属性混同为例,在混同过程成,如果你的属性命名和零碎的一些属性命名反复了,导致在混同的过程中把零碎的属性也给混同了,导致报错不能运行,所以须要把这样的属性给过滤掉,ZFJObsLib 也有增加好的一些零碎过滤字段,然而思考的我的项目的多变性和不可能全副增加,所以除了软件自带的一些过滤字段,用户也能够本人增加过滤字段,你也能够设置增加第三库的属性字段等等;办法和类目意义雷同,这里就不做过多赘述了!!!
16. 魔改界面控件(字体)色彩
在审核过程中会审核你界面的 UI,如果 UI 大面积雷同必定也是不行的,这里有个黑科技,是一键批改 UI 控件的背景色彩或者增加背景色彩,也能够批改字体的色彩!
成果比照如下:
色彩魔改反对魔改类型和参数的自定义,如下:
工具箱
ZFJObsLib 集成了几个工具,这些工具对混同作用不大,仅供大家方便使用!
1. 爬虫工具
详情请看?《Python- 一键爬取图片、音频、视频资源》https://zfj1128.blog.csdn.net…
教学视频
资源爬取:链接:https://pan.baidu.com/s/1xa9r… 明码:1zpg
节点爬取:链接:https://pan.baidu.com/s/1ebWW… 明码:cosa
应用截图
2. 图片压缩工具
ZFJObsLib 集成图片压缩工具,反对一键生成 iOS 开发三套图标,也反对自定义压缩尺寸,还能够移除 Alpha 通道,转成 RGB 图片模式;实现逻辑可参考:?《Python- 批量压缩解决图片(批量生成 @1x, @2x, @3x)》https://zfj1128.blog.csdn.net…
具体如下图:
3. 资源清理工具
在 iOS 我的项目开发的过程中,如果版本迭代开发的工夫比拟长,那么在很多版本开发当前或者说有多人开发参加当前,工程中不免有一些垃圾资源,未被应用却占据着 api 包的大小!
这里我通过 Python 脚本来查找我的项目中未被应用的图片、音频、视频资源,而后删除掉;以达到减小 APP 包大小的目标!
具体请看:?《Python- 一键查找 iOS 我的项目中未应用的图片、音频、视频资源》https://zfj1128.blog.csdn.net…
4. 翻译助手
主动翻译关键词和形容,具体请看《ZFJObsLib-iOS 马甲包多语言主动翻译软件》
如下图:
混同示例
这个我的项目是某位群友提供的 swift 我的项目!
QQ 空间外面大量的过包记录不是吹出来的,都是网友的实在反馈记录: