iOS混淆笔记

2021-01-01 00:00:00
zl
iOS混淆笔记

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

混淆:

下载安装链接:https://github.com/HikariObfuscator/Hikari/releases

将Hikari.xctoolchain解压到~/Library/Developer/Toolchains/ 或/Library/Developer/Toolchains/ 即可。区别是前者只有当前用户可用,后者所有用户都可使用

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

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

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

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

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,否则部分垃圾代码容易产生报错

你可能感兴趣的:(iOS混淆笔记)