ollvm编译xcode toolchains食用教程

本文提供了一份ollvm编译Xcode toolchains的详细教程,包括相关开源项目介绍、编译环境和步骤、如何使用toolchains编译iOS应用以及添加编译选项以启用混淆功能。在Xcode中切换到自编译的toolchain,通过关闭特定构建设置解决了编译错误,并成功实现了混淆编译。
摘要由CSDN通过智能技术生成

相关开源分支项目

编译过程

上面几个项目都是llvm的几个分支,选择哪个项目作为你的混淆器的编译取决于个人,本篇基于ollvm改版项目,最大适配Xcode11。编译环境如下:

cmake: 3.17.2
ninja: 1.10.0
Gcc: 9.3.0
Xcode: Version 12.4 (12D4e)
macOS Catalina: 10.15.7

下载代码

git clone https://gitee.com/r6/ollvm

从ollvm新建build文件夹,生成makefile

cd ollvm
mkdir ninja_build
cd ninja_build

执行build命令

cmake -G "Ninja" -DLLDB_CODESIGN_IDENTITY='' -DCMAKE_BUILD_TYPE=MinSizeRel -DLLVM_APPEND_VC_REV=on -DLLDB_USE_SYSTEM_DEBUGSERVER=YES -DLLVM_CREATE_XCODE_TOOLCHAIN=on -DCMAKE_INSTALL_PREFIX=~/Library/Developer/ ../llvm

注意-DCMAKE_BUILD_TYPE=MinSizeRel,这个只是debug包,如需要发布包,可以Release,具体自己看编译llvm选项
经过漫长的等待,在~/Library/Developer/下面会生成toolchains。

LLVM10.0.0svn.xctoolchain

使用toolchains编译iOS应用

新建一个demo
测试函数

验证加固能力,用以上的addFunc来验证。

在Xcode --> Toolchains --> 选择我们编译的toolchain来编译。不加任何编译选项编译:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dRLewgmZ-1627785136615)(https://www.picbed.cn/images/2021/06/28/imageec020680b20f6ce9.png)]

好像直接报错了,google了一下,原因是index这个选项没有实现,那我们直接在buildsettings关掉它就好了。

Build Settings --> Enable Index-While-Building Functionality --> NO
把这个选项设置为NO,编译成功!

添加编译选项

添加编译选项到Other CFlag开启混淆!

-mllvm -sub -mllvm -bcf -mllvm -fla -mllvm -split

完美编译成功!开启bitcode也能编译过去
把产物放到IDA里面 看看是否正常混淆

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值