Skip to content

JourneyYoung/iOSMixProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iOSMixProject

混淆加固工程

最近的思路

不少人私信问最新的思路,在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文件中修改

使用方法

和原来的轮子一样,先配置启动参数再运行,如图

image_0

参数解释:

1.工程代码的绝对路径

2.-modifyProjectName [原工程名]>[新工程名]

3.-modifyClassNamePrefix [xcodeproj文件的绝对路径,不是pod安装后的那个打开文件] [旧类前缀]>[新类前缀]

4.-spamCodeOut

5.-ignoreDirNames [需要忽略的文件夹],[需要忽略的文件夹] 注意,Pods文件夹不在混淆范围内,不需要写

6.-handleXcassets (混淆图片文件)

7.-deleteComments (删除多余的空格和注释)

8.-chageAPIPrefix [旧方法名前缀]>[新方法名前缀] 注意,前缀要有“_”才能被识别,如果之前工程中没有xx_下划线开头来命名方法的,此项不要勾选

9.-modifyAPIName 改变api名字,注意是随机的,这个更改最好不要提交,只用来上架,一次性操作,否则可能增加后续维护的负担(看不懂方法名了)

此工程可以选择混淆概率,修改工程中kPercent数值。

详情

有关此工程的设计详情请看这篇文章传送门

痛点

时间复杂度可以说是非常的高,跑起来运行时CPU占用率几乎达到百分百。好在这基本是一次性工具。。。

About

To mix your project if you want it won't be like others

Resources

License

Stars

Watchers

Forks