Obfuscator-LLVM is a project initiated in June 2010 by the information security group of the University of Applied Sciences and Arts Western Switzerland of Yverdon-les-Bains (HEIG-VD).
The aim of this project is to provide an open-source fork of the LLVM compilation suite able to provide increased software security through code obfuscation and tamper-proofing. As we currently mostly work at the Intermediate Representation (IR) level, our tool is compatible with all programming languages (C, C++, Objective-C, Ada and Fortran) and target platforms (x86, x86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ, and XCore) currently supported by LLVM.
对于这个插件,网上的安装文章相对来说还是挺多的,例如官方的文档https://github.com/obfuscator-llvm/obfuscator/wiki/Installation,再例如 http://www.exchen.net/ios-hacker-obfuscator-llvm-xcode%E9%9B%86%E6%88%90%E9%85%8D%E7%BD%AE.html。已经写的都非常详细了,按照上面的文章基本都可以配置好了,唯一需要注意的是如果xcode的版本不同,对应的里面的字符串可能不一致,例如:
<string>Apple LLVM 8.0</string> -> <string>Obfuscator 4.0</string>
如果用的是xcode9 那么应该是Apple LLVM 9.0。同时如果在编译之前没有安装cmake,可以通过homebrew来安装还是非常方便的。
brew install cmake
Homebrew installs the stuff you need that Apple didn’t.
如何安装homebrew请参考这个链接:https://brew.sh/
如果不想跳转上面的链接,直接在终端中执行下面的安装代码即可:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
这里想说的是安装完成之后,还可能会出现别的问题,例如提示编译的时候提示下面的信息:
clang-4.0: error: cannot specify -o when generating multiple output files
解决方法也比较简单,禁用Enable Indexing while building
即可https://github.com/obfuscator-llvm/obfuscator/issues/108,如下图所示:
已知问题,xcode9.2 无法编译iOS项目。目前还没找到解决方案
插件地址:https://github.com/obaby/xcode-obfuscator-llvm-plugin