Obfuscator-LLVM各系統環境配置

Obfuscator-LLVM各系統環境配置

linux

第一次先使用的CentOS_v6.4_x64,結果被glibc和gcc版本搞迷糊了,使用o-llvm的clang -v,直接段錯誤,被4.4.7版本的gcc噁心到了
然後切換到Fedora_v22_x64
sudo dnf install gcc gcc-c++
sudo dnf install cmake
然後參照這裏的說明進行編譯

so庫編譯

`clang -fPIC -O2 -Wall -c hello.c -o hello.o -mllvm -fla -mllvm -sub -mllvm -bcf`
`clang -shared hello.o -o libhello.so -static-libgcc`

32位庫
sudo dnf install glibc-devel.i686
然後-m32一下

android

下載ndk-r10e
mv toolchains toolchains_bak
mkdir toolchains
cp -r toolchains_bak\llvm-3.6 toolchains\obfuscator-llvm-3.6
rm -rf toolchains\obfuscator-llvm-3.6\prebuilt\x86_64....
然後把編譯出來的bin/lib目錄拷進來
接下來配置工具鏈,編譯哪個平臺就拷進來,文件夾加個obfuscator後綴,setup.mk配置下llvm路徑
配置jni工程的Android.mk和Application.mk,主要添加編輯混淆參數和指定工具鏈(clang3.6-obfuscator)
我編譯的時候遇到arm64/x86_64的clang編譯沒問題,鏈接的時候報找不到ld,然後把對應工具鏈的gcc版本拷進來鏈接就成功了(但如果一開始就把gcc工具鏈拷進來就不走clang進行編譯,指定的混淆參數-mllvm也就報錯了)
再就是mip64在linux的host和osx的host下都編不出來,參考了五、如何解決NDK + LLVM-Obfuscator 無法編譯x86的問題?,對比了branch-3.6.1的代碼,已經加了那些“*-linux-android”了呀,不知道問題出在哪

iOS

osx下工具的下載、編譯基本跟linux沒啥區別,同樣參照這裏對XCode的編譯插件進行配置
在編譯庫的時候出了點問題,o-llvm的工具鏈不認得這兩個編譯參數 -gmodules -fembed-bitcode-marker,網上查了會兒都沒找到類似問題,不知道是XCode版本(7.0.1)還是o-llvm版本(3.6.1)導致的,於是就開始看編譯參數
作爲頭個iOS工程,看了沒幾個就找到了參數,我表示很開心
-gmodules: Obfuscator 3.6.1 - Code Generation: Generate Debug Symbols: 原來yes,改成no
-fembed-bitcode-marker: Build Option: Enable Bitcode: 原來yes,改成no
ok啦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章