• Stars
    star
    936
  • Rank 48,823 (Top 1.0 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created almost 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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占用率几乎达到百分百。好在这基本是一次性工具。。。