需要用到的工具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中的对应内容:
<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>
$ 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当前项目混淆.
网友评论