Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JourneyYoung/iOSMixProject
To mix your project if you want it won't be like others
https://github.com/JourneyYoung/iOSMixProject
Last synced: 2 months ago
JSON representation
To mix your project if you want it won't be like others
- Host: GitHub
- URL: https://github.com/JourneyYoung/iOSMixProject
- Owner: JourneyYoung
- License: mit
- Created: 2018-02-09T07:56:48.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-12T06:57:17.000Z (over 5 years ago)
- Last Synced: 2024-08-03T18:20:17.504Z (5 months ago)
- Language: Objective-C
- Homepage:
- Size: 47.9 KB
- Stars: 936
- Watchers: 18
- Forks: 259
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-iOS - iOSMixProject - 马甲包混淆工程 (Tools)
- awesome-hacking-lists - JourneyYoung/iOSMixProject - To mix your project if you want it won't be like others (Objective-C)
README
# iOSMixProject
混淆加固工程# 最近的思路
不少人私信问最新的思路,在18年10月之前,只要过了机审基本上就等于上架,所以混淆脚本市场很大,目前我主要采用是LLVM混淆,本脚本目前仍能过机审。# 原工程地址
首先感谢将此脚本初始脚本开源的大佬,但不太适合我们工程,于是我们在原有的轮子上加了几颗螺丝钉,仅供参考思路,奉上原仓库地址。
注意看这里!原始代码仓库地址:[https://github.com/klaus01/KLGenerateSpamCode](https://github.com/klaus01/KLGenerateSpamCode)# 新增功能
除了已有的图片资源递增修改、修改工程名、类前缀修改(修改了遍历方案)外,还加了一些骚东西0、直接在工程中添加垃圾代码,垃圾代码的规则可自己修改脚本代码自定义
1、混淆随机添加垃圾代码、参数
2、修改方法名前缀
3、修改方法名,使用plist文件创建原始方法名仓库,共有6^6个方法名可以配置,随机方法名配参数
4、删除垃圾代码。以脚本前缀为索引
5、混淆概率
# 注意点
1、这个工程里的方法名前缀只适应我们自己的工程,因为我们的工程方法名是前缀_xxx这类格式的,所以不要再问为什么没有资源改变了兄dei。没有执行的代码,麻烦看看main函数里是不是注释掉了,先看代码,再发问。
2、api名字是随机从6^6个方法名生成的,可以在plist文件中修改
# 使用方法
和原来的轮子一样,先配置启动参数再运行,如图
![image_0](http://puioc6h3a.bkt.clouddn.com/E02D60A5-1DA2-46A9-B759-AB29AEE7C096.png)
参数解释:
1.工程代码的绝对路径
2.-modifyProjectName [原工程名]>[新工程名]
3.-modifyClassNamePrefix [xcodeproj文件的绝对路径,不是pod安装后的那个打开文件] [旧类前缀]>[新类前缀]
4.-spamCodeOut
5.-ignoreDirNames [需要忽略的文件夹],[需要忽略的文件夹] 注意,Pods文件夹不在混淆范围内,不需要写
6.-handleXcassets (混淆图片文件)
7.-deleteComments (删除多余的空格和注释)
8.-chageAPIPrefix [旧方法名前缀]>[新方法名前缀] 注意,前缀要有“_”才能被识别,如果之前工程中没有xx_下划线开头来命名方法的,此项不要勾选
9.-modifyAPIName 改变api名字,注意是随机的,这个更改最好不要提交,只用来上架,一次性操作,否则可能增加后续维护的负担(看不懂方法名了)
***此工程可以选择混淆概率,修改工程中kPercent数值。***
# 详情
有关此工程的设计详情请看这篇文章[传送门](http://www.imyuyang.com/2018/02/15/iOS%E9%A9%AC%E7%94%B2%E5%8C%85%E6%B7%B7%E6%B7%86%E6%96%B9%E6%A1%88/)# 痛点
时间复杂度可以说是非常的高,跑起来运行时CPU占用率几乎达到百分百。好在这基本是一次性工具。。。