iOS混淆笔记

入职新公司,没有带笔记,结果就N脸懵了,记在掘金方便日后查找。git

混淆:github

下载安装连接:https://github.com/HikariObfuscator/Hikari/releaseside

将Hikari.xctoolchain解压到~/Library/Developer/Toolchains/ 或/Library/Developer/Toolchains/ 便可。区别是前者只有当前用户可用,后者全部用户均可使用函数

1.选择Xcode -> Toolchains -> HikariObfuscator将混淆工具和项目关联。工具

2.将全部与要运行的target相关的target(包括pod进来的库)Enable Index-While-Building 的值改成NO。ui

3.Optimization Level 的值设置为 None[-O0]加密

3.若是是全局混淆,则在须要混淆的target中直接将Other C Flags的值加上所需的混淆标记code

Other C Flags文档

* 每一个flag前加须要上-mllvm字符串

通常添加如下三种标记:

-mllvm -enable-fco

-mllvm -enable-funcwra

-mllvm -enable-strcry

-mllvm -enable-acdobf

4.编译便可完成混淆


其他所有标记:

-mllvm -enable-bcfobf 启用伪控制流

-mllvm -enable-cffobf 启用控制流平坦化

-mllvm -enable-splitobf 启用基本块分割

-mllvm -enable-subobf 启用指令替换

-mllvm -enable-acdobf 启用反class-dump

-mllvm -enable-indibran 启用基于寄存器的相对跳转,配合其余加固能够完全破坏IDA/Hopper的伪代码(俗称F5)

-mllvm -enable-strcry 启用字符串加密

-mllvm -enable-funcwra 启用函数封装

-mllvm -enable-allobf  依次性启用上述全部标记

* 若是没法提审:正常使用Hikari工具链编译后删除IPA的Info.plist下的``DefaultToolchainOverrideInfo`` 。而后重启Xcode和Organizer。


对于代码信息的修改,可使用KLGenerateSpamCode程序,根据文档提示进行修改。

Github地址: https://github.com/klaus01/KLGenerateSpamCode

对于各功能的使用,须要注意顺序。

删除空行和注释可能存在少部分代码的误删。

项目过于复杂不建议修改类文件前缀,可能产生未知bug。部分目录修改前缀也不可取,未在目录内的引用不会更改,须要手动更改。


垃圾代码生成器,使用工具ChaosTool

下载地址:https://www.yaozuopan.top

/* 支持返回值/属性/参数类型 **/:NSString/NSArray/NSData/NSDictionary/UIImage 最好删除UIimage,不然部分垃圾代码容易产生报错

相关文章
相关标签/搜索