混淆工具插件-OLLVM

需要用到的工具cmake 下载好软件,用命令执行.
https://cmake.org/download/
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

用於解釋混淆文件中的版本區別.

可查到.

OOLVM-JSF基於https://www.jianshu.com/p/e0637f3169a3
但是會出現___isOSVersionAtLeast該異常,需要前往/build/lib/clang/版本號/lib/drawin/中添加/替換libclang_rt.ios.a

替換的方法.

libclang_rt.ios.a

直接在

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/cl ang/9.1.0/lib/darwin/libclang_rt.ios.a to [AIRSDK_PATH]/lib/aot/lib/libclang_rt.ios.a

在該路徑下的libclang_rt.ios.a 添加/替換/build/lib/clang/版本號(8.0.0)/lib/drawin/下的

OLLVM-SF基於OLLVM-X5文件去迭代.其中只是替換了libclang_rt.ios.a 可使用混淆參數為

**************************
* "-mllvm"               *
* "-sub"                 *
* "-mllvm"               *
* "-sub_loop=2"          *
* "-mllvm"               *
* "-fla"                 *
* "-mllvm"               *
* "-split"               *
* "-mllvm"               *
* "-split_num=2"         *
**************************

OLLVM-X5 基於 https://github.com/obfuscator-llvm/obfuscator.git 編譯的.

以上为我混淆文件的说明.

开始重新布置混淆工具
製作OLLVM混淆工具插件.
https://www.jianshu.com/p/e0637f3169a3 //作者混淆工具

$ 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

配置Xcode--新建Obfuscator插件

$ 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

修改Info.plist中的对应内容:
com.apple.compilers.clang -> com.apple.compilers.obfuscator  
Clang LLVM 1.0 Compiler Xcode Plug-in -> Obfuscator Xcode Plug-in

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

修改ExecPath的地址为当前build/bin的地址(!重点) 刚刚编译出来的bulid 文件夹下的bin目录路径 例如 /Users/你的用户名/xxx/bulid/bin/clang

Identifier = "com.apple.compilers.llvm.clang.1_0"; -> Identifier = "com.apple.compilers.llvm.obfuscator.4_0";  
Name = "Apple LLVM 8.0"; -> Name = "Obfuscator 4.0";  
Description = "Apple LLVM 8.0 compiler"; -> Description = "Obfuscator 4.0";  
Vendor = Apple; -> Vendor = HEIG-VD;  
Version = "7.0"; -> Version = "4.0";  
ExecPath = "clang"; -> ExecPath = "/path/to/obfuscator_bin/clang";

可以先輸入ls 查看是否有這個文件夾English.lproj,Xcode10之后改为了en.lproj
进入目录之后再次输入ls 是否有Apple\ LLVM\ 8.0.strings一般都是以Apple开头的,替换成"Obfuscator 4.0.strings"

$ 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

"Description" = "Apple LLVM 8.0 Compiler"; -> "Description" = "Obfuscator 4.0";  
"Name" = "Apple LLVM 8.0"; -> "Name" = "Obfuscator 4.0";  
"Vendor" = "Apple"; -> "Vendor" = "HEIG-VD";  
"Version" = "8.0"; -> "Version" = "4.0";

以上一个Obfuscator插件就完成了.
打开Xcode-项目-BuildSettings

Enable Bitcode 和 Enable Index设置为NO
在Other C Flags中添加相关混淆参数
在Build Options中的Compiler forC/C++/Objective-C 中选择Obfuscator 4.0进行编译

以上为OLLVM当前项目混淆.

你可能感兴趣的:(混淆工具插件-OLLVM)