ios-class-guard混淆代码基本使用

GitHub 点我

Homebrew

ios-class-guard是在class-dump的基础进行的混淆处理

  • 安装 (将安装在/usr/local/bin目录下,安装后可以在Terminal使用which ios-class-guard 命令查看)

    1
    brew install ios-class-guard

    或安装bleeding edge version(测试版):

    1
    brew install --HEAD ios-class-guard
  • 使用

    1.下载 obfuscate_project 到项目根目录

    1
    curl -o obfuscate_project https://raw.githubusercontent.com/Polidea/ios-class-guard/master/contrib/obfuscate_project && chmod +x obfuscate_project

    2.使用终端或其他文本编辑工具打开obfusacate_project 修改PROJECT,SCHEME,CONFIGURATION,SDK等

    3.按照MyProject-Prefix.pch 格式创建PCH文件(iOS-Class-Guard会自动查找改pch文件并引入后续生成的symbols.h)

    • 步骤

      1.XCode File -> New -> File -> iOS -> Other -> PCH File

      2.在target的Build Setting 中设置 Prefix Header 路径 并设置 Precomplie Prefix HeaderYES

    4.终端执行bash obfuscate_project (注意:如果在git环境下先commit一次代码,因为执行此命令会放弃本地所有更改,如果不在git下直接Go2Shell到终端生产Git环境

    1
    2
    3
    git init
    git add .
    git commit -m "init"

    执行bash obfuscate_project 若成功则为在路径下生成 symbols.hsymbols.json 若失败则编译项目,查看报错的地方,在obfuscate_project 中添加忽略项 eg: CLASS_GUARD_OPTS= “-i width” 表示不混淆width 修改完后记得commit obfuscate_project 文件

    验证:

    编译成功后,Product下出现xx.app,在Finder中显示包内容,将可执行文件拷贝到某路径下,在目录创建一个文件夹存放头文件

    class-dump -H 可执行文件名 -o 输入目录

    砸出的头文件不规则乱码这种表示混淆成功

    本文是ios-class-guard的基本使用,后续将进一步剖析,敬请期待!