美文网首页
混淆工具插件-OLLVM

混淆工具插件-OLLVM

作者: sennnnn | 来源:发表于2020-10-23 14:45 被阅读0次

    需要用到的工具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当前项目混淆.

    相关文章

      网友评论

          本文标题:混淆工具插件-OLLVM

          本文链接:https://www.haomeiwen.com/subject/hjuwyhtx.html