混淆加固工程
不少人私信问最新的思路,在18年10月之前,只要过了机审基本上就等于上架,所以混淆脚本市场很大,目前我主要采用是LLVM混淆,本脚本目前仍能过机审。
首先感谢将此脚本初始脚本开源的大佬,但不太适合我们工程,于是我们在原有的轮子上加了几颗螺丝钉,仅供参考思路,奉上原仓库地址。 注意看这里!原始代码仓库地址:https://github.com/klaus01/KLGenerateSpamCode
除了已有的图片资源递增修改、修改工程名、类前缀修改(修改了遍历方案)外,还加了一些骚东西
0、直接在工程中添加垃圾代码,垃圾代码的规则可自己修改脚本代码自定义
1、混淆随机添加垃圾代码、参数
2、修改方法名前缀
3、修改方法名,使用plist文件创建原始方法名仓库,共有6^6个方法名可以配置,随机方法名配参数
4、删除垃圾代码。以脚本前缀为索引
5、混淆概率
1、这个工程里的方法名前缀只适应我们自己的工程,因为我们的工程方法名是前缀_xxx这类格式的,所以不要再问为什么没有资源改变了兄dei。没有执行的代码,麻烦看看main函数里是不是注释掉了,先看代码,再发问。
2、api名字是随机从6^6个方法名生成的,可以在plist文件中修改
和原来的轮子一样,先配置启动参数再运行,如图
参数解释:
1.工程代码的绝对路径
2.-modifyProjectName [原工程名]>[新工程名]
3.-modifyClassNamePrefix [xcodeproj文件的绝对路径,不是pod安装后的那个打开文件] [旧类前缀]>[新类前缀]
4.-spamCodeOut
5.-ignoreDirNames [需要忽略的文件夹],[需要忽略的文件夹] 注意,Pods文件夹不在混淆范围内,不需要写
6.-handleXcassets (混淆图片文件)
7.-deleteComments (删除多余的空格和注释)
8.-chageAPIPrefix [旧方法名前缀]>[新方法名前缀] 注意,前缀要有“_”才能被识别,如果之前工程中没有xx_下划线开头来命名方法的,此项不要勾选
9.-modifyAPIName 改变api名字,注意是随机的,这个更改最好不要提交,只用来上架,一次性操作,否则可能增加后续维护的负担(看不懂方法名了)
此工程可以选择混淆概率,修改工程中kPercent数值。
有关此工程的设计详情请看这篇文章传送门
时间复杂度可以说是非常的高,跑起来运行时CPU占用率几乎达到百分百。好在这基本是一次性工具。。。