IOSI love iOS

iOS混淆方案-Hikari

2019-10-21  本文已影响0人  Eigo888

本文主要介绍Hikari工具混淆的使用

最近在研究马甲包这块,所以涉及到混淆代码的,试了写脚本插入垃圾代码、生成垃圾函数、以及修改资源md5值,觉得混淆的力度还是不够大,于是。。。研究了下Hikari混淆。。

首先,需要的工具,1,反编译工具Hopper;2,Hikari

下载Hikari后,双击安装,

安装Hikari

安装完了之后,在xcode中选择 xcode->Toolchains->Hikari  如图:

xcode中选择 xcode->Toolchains->Hikari

然后将所有与要运行的target相关的target的Enable Index-While-Building 的值改为NO。(注意!!pod进来的库也需要添加!!)

Enable Index-While-Building 的值改为NO

关闭编译优化,将所有 target 的 Optimization Level 改为 None:

Optimization Level 改为 None

开启需要的混淆选项:Build Settings->Other C Flags 中加入混淆标记:-mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-splitobf -mllvm -enable-subobf -mllvm -enable-acdobf -mllvm -enable-indibran -mllvm -enable-strcry -mllvm -enable-funcwra -mllvm -enable-allobf

具体标记解释:

-mllvm -enable-allobf 全部启用 

-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 启用函数封装

做完这些后,编译,编译完成后混淆就完成了。

可以发现混淆前后的包不一样大小,这是正常的。

如果你想看编译结果,可以使用反编译工具Hopper去反编译查看,具体Hopper使用方法下一篇文章介绍吧。

上一篇下一篇

猜你喜欢

热点阅读