相关开源分支项目
- hikari版本 LLVM15
https://github.com/iMemScan/Hikari-LLVM15.git
编译过程
上面几个项目都是llvm的几个分支,选择哪个项目作为你的混淆器的编译取决于个人,本篇基于ollvm改版项目,最大适配Xcode14-16。编译环境如下:
下载代码
git clone https://github.com/iMemScan/Hikari-LLVM15.git
创建build,生成makefile
cd Hikari-LLVM15
git checkout llvm-15.0.2rel
mkdir build
cd build
重点
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DLLVM_CREATE_XCODE_TOOLCHAIN=ON -DLLVM_ENABLE_RUNTIMES="compiler-rt" -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi" ../llvm/
sudo make -j7
sudo make install-xcode-toolchain
具体自己看编译llvm选项
经过漫长的等待,在这个目录会生成xcodetoolchain
/usr/local/Toolchains/Hikari_LLVM15.0.2.xctoolchain
复制到~/Library/Developer/Toolchains下面,没有Toolchains目录的自己创建
使用toolchains编译iOS应用
新建一个demo
验证加固能力,用以上的addFunc来验证。
在Xcode --> Toolchains --> 选择我们编译的toolchain来编译。不加任何编译选项编译:
好像直接报错了,google了一下,原因是index这个选项没有实现,那我们直接在buildsettings关掉它就好了。
Build Settings --> Enable Index-While-Building Functionality --> NO
把这个选项设置为NO,编译成功!
添加编译选项
自己查看Hikari具体的编译参数添加混淆,这里不做过多描述,作者使用添加函数宏定义的方法来混淆
https://github.com/HikariObfuscator/Hikari