OLLVM代碼混淆移植與使用(續(xù))

現(xiàn)狀

隨著時間時間推移,類似庫都基本不維護(hù)了,畢竟LLVM新版本改動多還好說,再多只要看看關(guān)鍵位置就大差不差知道怎么改怎么兼容,最難的就是編譯,每次編譯調(diào)試不知不覺沒干啥就能耗人一天,另外就是以前的人現(xiàn)在都不知道還在不在業(yè)內(nèi),回歸正題,其實(shí)修改的地方并不多,下面我就整理了一下關(guān)鍵位置,主要就是類型和調(diào)用順序變了一下,了解以后去修改類似的項(xiàng)目也是手到擒來。

關(guān)鍵修改

9.0以后的修改

這里類型寫法更加標(biāo)準(zhǔn)一步一步轉(zhuǎn)

image.png

這里是9以后不在調(diào)用這個方法了,導(dǎo)致fla不生效,也可以在Flattening.cpp里面修改添加
image.png

10.0以后的修改

首先Obfuscation/CMakeLists.txtadd_llvm_libraryadd_llvm_component_library

這里是LoadInst初始化多加了個類型參數(shù),類似地方全改一遍

image.png

image.png

這里傳入類型修改一下
image.png

再然后CryptoUtils.h里有一些宏定義是非常短的名稱代表方法,這里再全局里容易有歧義,可以批量移到CryptoUtils.cpp里,因?yàn)橹挥羞@個類再用,其他地方也沒有用這些短名稱的宏方法
image.png

其他地方和原來一樣不變。

11.0以后的修改

這里開始嚴(yán)格區(qū)分一元運(yùn)算符和二元運(yùn)算符了


image.png

image.png

XCode12 以后

首先編譯要多加幾個項(xiàng)目,根據(jù)自己需要可以多填幾個,LLVM-10以后llvm目錄向內(nèi)放了一層

cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_CREATE_XCODE_TOOLCHAIN=ON -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi" ../obfuscator/llvm
make -j7
sudo make install-xcode-toolchain
mv /usr/local/Toolchains  /Library/Developer/

然后在Build Settings里找到C++ Language DialectC++ Standard Library使用默認(rèn)是為了直接走編譯鏈構(gòu)建的版本,如果你還加了其他的也需要注意一下別的確保都走你編譯的版本

build3.png

Android Studio4.x以后

NDK都改為了默認(rèn)CMake項(xiàng)目,直接復(fù)制Android/sdk/ndk/xx.x.xxxxxx文件夾修改一下名稱,替換bin和lib64

在build.gradle里添加個人修改的版本

android {
    ndkVersion "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
}
WX20211228-021611@2x.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容