美文网首页IOSI love iOS
iOS混淆方案-Hikari

iOS混淆方案-Hikari

作者: Eigo888 | 来源:发表于2019-10-21 15:44 被阅读0次

    本文主要介绍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使用方法下一篇文章介绍吧。

    相关文章

      网友评论

        本文标题:iOS混淆方案-Hikari

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