iOS Hacker obfuscator-llvm Xcode集成配置

一、简介

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。下载完成之后,进入到解压之后目录下,输入以下命令进行安装

    sudo ./bootstrap && sudo make && sudo make install    
  3. 编译

    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. 修改 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
    cd Obfuscator.xcplugin/Contents/
    sudo plutil -convert xml1 Info.plist
    sudo vim Info.plist

    将以下键值修改一下

    <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>
  2. 修改 xcspec

    执行如下命令

    sudo plutil -convert binary1 Info.plist
    cd Resources/
    sudo mv Clang\ LLVM\ 1.0.xcspec Obfuscator.xcspec
    sudo vim Obfuscator.xcspec

    将以下键值修改一下

    <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>7.0</string> -> <string>4.0</string>
  3. 修改 English.lproj

    执行如下命令

    cd English.lproj/
    sudo mv Apple\ LLVM\ 5.1.strings "Obfuscator 3.4.strings"
    sudo plutil -convert xml1 Obfuscator\ 3.4.strings
    sudo vim Obfuscator\ 3.4.strings 将以下键值修改一下

    将以下键值修改一下

    <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>7.0</string> -> <string>4.0</string>

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

    $ sudo plutil -convert binary1 Obfuscator\ 3.4.strings
  4. 去 Xcode 里看下编译设置

这里写图片描述

然后添加 obfuscation flags

这里写图片描述

四、效果

混淆之后,用静态工具分析效果如下图:

这里写图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值