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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 项目原因研究Android的So库代码混淆,增加IDA工具查看的复杂度。简单接触了ollvm 混淆组件。网上查看了...
    小子不坏_sprite阅读 4,850评论 2 9
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,921评论 0 5
  • 师父开完庭回来要抢我给弟弟补偿的饮料还说我昨天下午趁他外出的时候跟大家一起叫下午茶ψ(`∇´)ψ 在我批评了他为啥...
    酸奶雪糕不要酸奶阅读 163评论 0 0
  • 今天5点起床。想写文章,读费雪的书,听CFA的课,想写保险的文章。
    陈敬Chris阅读 600评论 1 51
  • 昨夜大雨滂沱,冒雨回家,格格正在专心画画。 两只小胖手,拿着粉色、绿色的彩笔,在mini篮球架上涂来涂去。 看到我...
    踟蹰行者阅读 740评论 0 0