Hikari代码混淆

2020.01.14 此方法早已无法使用,原作者也不再更新

下载pkg安装文件:
https://github.com/HikariObfuscator/Hikari/releases

安装成功Toolchains会出现Hikari选项


image.png

将项目中所有target(包括pod进来的三方库)Enable Index-While-Building Functionality设为NO


image.png
image.png

三方库target忘记设置的话会报如下两个错误:
-index-store-path
cannot specify -o when generating multiple output files

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

在 Build Settings -> Other C Flags 中加入混淆标记
-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 依次性启用上述所有标记

image.png

编译。
编译完成后混淆就完成了,可以用hopper工具进行对比

ps:我用的xcode10,Hikari.xctoolchain的clang版本太低,会出现如下报错:


image.png

进入/资源库/Developer/Toolchains/,找到Hikari.xctoolchain右键显示包内容,进入usr/lib/clang,里面有两个文件夹,分别是7.0.0和10.0.0,把7.0.0删除,把10.0.0重命名为7.0.0,编译就通过了

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

推荐阅读更多精彩内容