# iOSMixProject **Repository Path**: rundev/iOSMixProject ## Basic Information - **Project Name**: iOSMixProject - **Description**: https://github.com/JourneyYoung/iOSMixProject - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-04-15 - **Last Updated**: 2022-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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占用率几乎达到百分百。好在这基本是一次性工具。。。