迫不及待地想要分享xcode集成obfuscator-llvm

首先讲一下理论哈

一、 LLVM是什么?

(1)LLVM是lowlevel virtual machine的简称,是一个编译器框架。苹果公司的Xcode 4.0之后用的都是LLVM编译器。

(2)LLVM 诞生于2003.10伊利诺伊大学香槟分校,创始人ChrisLattner,现任苹果公司『开发者工具』部门的主管。

迫不及待地想要分享xcode集成obfuscator-llvm_第1张图片
迫不及待地想要分享xcode集成obfuscator-llvm_第2张图片

二、 LLVM-Obfuscator 是什么?

LLVM-Obfuscator 是瑞士西北应用科技大学安全实验室针对LLVM编译组件开发的代码混淆工具,该工具完全开源,目的是为了增加逆向工程的难度,保证代码的安全性。

三、下载及编译

下载地址

目前最新版的是4.0的,下载地址是 https://github.com/obfuscator-llvm/obfuscator/tree/llvm-4.0,也可以用 git 下载。

安装 cmake

OSX 下没有 cmake,需要安装,不然是不能编译 obfuscator-llvm 的。下载地址是:http://www.cmake.org/download,我下的版本是3.4.3。下载完成之后,进入到解压之后目录下,输入以下命令进行安装

1sudo ./bootstrap && sudo make && sudo make install

编译

$ git clone -b llvm-4.0 https://github.com/obfuscator-llvm/obfuscator.git

$ mkdir build

$ cd build

$ cmake -DCMAKE_BUILD_TYPE=Release ../obfuscator/

$ make -j7

编译成功之后 clang 在 build 下的 bin 目录。

四、集成XCODE

修改 xcplugin

首先复制一个 Obfuscator.xcplugin

$ cd /Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/

$ sudo cp -r Clang\ LLVM\ 1.0.xcplugin/ Obfuscator.xcplugin(作用:将1.0.xcplugin复制到Obfuscator.xcplugin)

$ cd Obfuscator.xcplugin/Contents/

$ sudo plutil -convert xml1 Info.plist(检查xml1语法并将其转为plist)

$ sudo vim Info.plist(编辑Info.plist)


迫不及待地想要分享xcode集成obfuscator-llvm_第3张图片
相关命令

将以下键值修改一下

com.apple.compilers.clang -> com.apple.compilers.obfuscator

Clang LLVM 1.0 Compiler Xcode Plug-in -> Obfuscator Xcode Plug-in

修改 xcspec

执行如下命令

$ sudo plutil -convert binary1 Info.plist(检查并将binary1转为Info.plist)

$ cd Resources/

$ sudo mv Clang\ LLVM\ 1.0.xcspec Obfuscator.xcspec(改变1.0.xcspec所在目录为Obfuscator.xcspec)

$ sudo vim Obfuscator.xcspec(编辑Obfuscator.xcspec)

将以下键值修改一下

(画重点!!!!!

迫不及待地想要分享xcode集成obfuscator-llvm_第4张图片
()

Description

Apple LLVM 8.0 compiler -> Obfuscator 4.0 compiler

ExecPath

clang -> /path/to/obfuscator_bin/clang

Identifier

com.apple.compilers.llvm.clang.1_0 -> com.apple.compilers.llvm.obfuscator.4_0

Name

Apple LLVM 8.0 -> Obfuscator 4.0

Vendor

Apple -> HEIG-VD

Version

7.0 -> 4.0

修改 English.lproj

$ cd English.lproj/

$ sudo mv Apple\ LLVM\ 5.1.strings "Obfuscator 3.4.strings"(将Apple\ LLVM\ 5.1.strings放到Obfuscator 3.4.strings)

$ sudo plutil -convert xml1 Obfuscator\ 3.4.strings(将xml转为Obfuscator\ 3.4.strings)

$ sudo vim Obfuscator\ 3.4.strings(编辑Obfuscator\ 3.4.strings)

将以下键值修改一下

(这里也有一个重点就是你要看一下你自己的版本,不要直接COPY 

命令 LS)

Description

Apple LLVM 8.0 compiler -> Obfuscator 4.0 compiler

Name

Apple LLVM 8.0 -> Obfuscator 4.0

Vendor

Apple -> HEIG-VD

Version

7.0 -> 4.0

最后执行以下命令就大功告成了

$ sudo plutil -convert binary1 Obfuscator\ 3.4.strings


迫不及待地想要分享xcode集成obfuscator-llvm_第5张图片

接下来就可以调通了

参考了很多资料,下面吧链接给出

Installation · obfuscator-llvm/obfuscator Wiki · GitHub

hacker-obfuscator-llvm-xcode集成配置

GitHub - obaby/xcode-obfuscator-llvm-plugin: Xcode obfuscator-llvm plugin

Android LLVM-Obfuscator C/C++ 混淆编译的深入研究 - CSDN博客

iOS混淆--OLLVM在iOS中的实践 | DragonFly的博客

有错的地方希望大家指出,共同进步

你可能感兴趣的:(迫不及待地想要分享xcode集成obfuscator-llvm)