iOS混淆笔记

作者: yh8577 | 来源:发表于2019-02-04 00:36 被阅读0次

    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混淆笔记

        本文链接:https://www.haomeiwen.com/subject/gwausqtx.html