1. 程式人生 > >obfuscator-llvm Xcode集成配置

obfuscator-llvm Xcode集成配置

跳轉 bds 解壓 ack 配置 git nts app str

一、簡介

obfuscator-llvm 是一個開源的代碼混淆編譯器,能夠使編譯出來的文件添加垃圾代碼和各種跳轉流程,給逆向分析者增加難度。

二、編譯

(1) 下載

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

(2) 安裝 cmake

OSX 下沒有 cmake,需要安裝,不然是不能編譯 obfuscator-llvm 的。下載地址是:http://www.cmake.org/download,我下的版本是3.4.3。下載完成之後,進入到解壓之後目錄下,輸入以下命令進行安裝

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

(3) 編譯

1 2 3 4 5 6 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 使用

(1) 修改 Info.plist

首先復制一個 Obfuscator.xcplugin:

1 2 3 4 5 6 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 cd Obfuscator.xcplugin/Contents/ sudo plutil -convert xml1 Info.plist
sudo vim Info.plist

將以下鍵值修改一下:

1 2 3 <string>com.apple.compilers.clang</string> -> <string>com.apple.compilers.obfuscator</string> <string>Clang LLVM 1.0 Compiler Xcode Plug-in</string> -> <string>Obfuscator Xcode Plug-in</string>

修改完成,執行以下命令:

1 2 sudo plutil -convert binary1 Info.plist

(2) 修改 xcspec

執行如下命令:

1 2 3 4 cd Resources/ sudo mv Clang\ LLVM\ 1.0.xcspec Obfuscator.xcspec sudo vim Obfuscator.xcspec

將以下鍵值修改一下:

1 2 3 4 5 6 7 8 9 10 11 12 13 <key>Description</key> <string>Apple LLVM 8.0 compiler</string> -> <string>Obfuscator 4.0 compiler</string> <key>ExecPath</key> <string>clang</string> -> <string>/path/to/obfuscator_bin/clang</string> <key>Identifier</key> <string>com.apple.compilers.llvm.clang.1_0</string> -> <string>com.apple.compilers.llvm.obfuscator.4_0</string> <key>Name</key> <string>Apple LLVM 8.0</string> -> <string>Obfuscator 4.0</string> <key>Vendor</key> <string>Apple</string> -> <string>HEIG-VD</string> <key>Version</key> <string>8.0</string> -> <string>4.0</string>

(3) 修改 strings

執行如下命令:

1 2 3 4 5 cd English.lproj/ sudo mv Apple\ LLVM\ 8.0.strings "Obfuscator 4.0.strings" sudo plutil -convert xml1 Obfuscator\ 4.0.strings sudo vim Obfuscator\ 4.0.strings

將以下鍵值修改一下:

1 2 3 4 5 6 7 8 9 <key>Description</key> <string>Apple LLVM 8.0 compiler</string> -> <string>Obfuscator 4.0 compiler</string> <key>Name</key> <string>Apple LLVM 8.0</string> -> <string>Obfuscator 4.0</string> <key>Vendor</key> <string>Apple</string> -> <string>HEIG-VD</string> <key>Version</key> <string>8.0</string> -> <string>4.0</string>

最後執行以下命令:

1 2 $ sudo plutil -convert binary1 Obfuscator\ 4.0.strings

(4) 修改 Xcode 的編譯設置

打開 Xcode,選擇一個項目,修改 Build Setting 的 GCC_VERSION 為 Obfuscator 4.0,如圖下圖所示:

技術分享圖片

然後添加 obfuscation flags

技術分享圖片

四、效果

混淆之後,用靜態工具分析效果如下圖:

技術分享圖片

原文地址: https://www.exchen.net/ios-hacker-obfuscator-llvm-xcode%E9%9B%86%E6%88%90%E9%85%8D%E7%BD%AE.html

obfuscator-llvm Xcode集成配置