交叉编译LLVM for iOS

最近在做基于llvm的app 运行时加固
假设完整的LLVM代码svn checkout在 ../LLVM

cmake -G "Ninja" -DCMAKE_OSX_ARCHITECTURES="armv7;armv7s;arm64" -DCMAKE_TOOLCHAIN_FILE=../LLVM/cmake/platforms/iOS.cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_RUNTIME=Off -DLLVM_INCLUDE_TESTS=Off -DLLVM_INCLUDE_EXAMPLES=Off -DLLVM_ENABLE_BACKTRACES=Off -DLLVM_TARGETS_TO_BUILD="ARM;AArch64" -DLLVM_TARGET_ARCH=ARM ../LLVM

然后Ninja 就行了

官方的crosscompile里压根没提这茬orz

膜张总
另外运行时llvm加固是什么?

秘密: )

完了,爱解密要倒闭了

我都搞得自己玩的偶尔丢两个PoC出来而已。快速破解AES大神不必担心

前排膜

张总,为什么我的ninja cmake就是报错呢

CMake Error at /usr/local/Cellar/cmake/3.9.0/share/cmake/Modules/CMakeDetermineSystem.cmake:100 (message):
Could not find toolchain file: …/LLVM/cmake/platforms/iOS.cmake
Call Stack (most recent call first):
CMakeLists.txt:54 (project)

CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_ASM_COMPILER not set, after EnableLanguage

“假设完整的LLVM代码svn checkout在 …/LLVM”

I am.
现在最气的是,我用Unix Makefiles也编译不过了。。。自从我编了obfs这个东西之后(按理说跟这个没啥关系吧)

你的llvm代码是哪来的

从这里svn下的

我觉着你是不是网断了还是什么svn没clone完

llvm/iOS.cmake at master · llvm-mirror/llvm · GitHub 都是有这个目录的

怪不得我一直编译不过呢。谢谢张总!我在重新svn下。。。

张总,如果我要编译成全平台的llvm-*,是不是把命令改成这样就OK了。

因为有时是生成的.out的文件,我希望在mac上直接运行。

我的bin目录下只有这一个??????????????????

我是分开来编译的两套

膜,张总一个人抵爱加密一个公司

这个参数没记错的话指的是编译MC里的哪些后端。不是编译本身用哪些架构

或者用人话说叫提供哪些arch对应的后端