ollvm 在 windows10 下安裝
本文檔源碼主要來源大神heroims的整理: OLLVM代碼混淆移植與使用
為了ollvm 能夠自定義混淆埃儿,所以需要修改源碼來重新編譯
本文檔生成日期 2021/4/16 ,所用軟件皆為最新版本融涣,以作參考
IOS 版本比較容易編譯童番,請移步其他文檔
本文檔使用make來編譯,沒有采用VS來編譯(沒成功過:smile:)威鹿,
簡要步驟說明
配置環(huán)境 MinGW-w64 (成功關(guān)鍵剃斧,下面有詳細步驟);
下載ollvm 源碼
git clone -b llvm-9.0.1 https://github.com/heroims/obfuscator.git
忽你;mkdir build
cd build
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ../obfuscator
mingw32-make -j12
幼东;//12 這里根據(jù)你的CPU核數(shù)來修改 ,因為mingw目錄下沒有make測試混淆結(jié)果 ;
.\build\bin\clang++ test.cpp -o test.o4 -mllvm -sub -mllvm -fla -mllvm -sobf
這個版本的 -mllvm -bcf 好像有問題,會卡住不動8贰E肌!
GCC編譯器選擇
各種GCC編譯器MinGW简逮、MinGW-W64球散、TDM-GCC,我誤裝了TDM-GCC對新版本支持不夠散庶,導(dǎo)致各種問題 ,更多區(qū)別:https://blog.csdn.net/lemon4869/article/details/107403560
1. TDM-GCC-64
最高的時候我默認安裝了TDM-GCC-64 ,開始菜單按mingw居然跳到這個gcc目錄????
setting up environment for using MinGW with GCC from C:\TDM-GCC-64\.
C:\TDM-GCC-64>gcc -version
gcc: error: unrecognized command line option '-version'
gcc: fatal error: no input files
compilation terminated.
C:\TDM-GCC-64>gcc --version
gcc (tdm64-1) 5.1.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\TDM-GCC-64>
也許對ollvm 4.0 編譯是沒有問題蕉堰,但后面最新的版本完全無能為力,各種錯誤
`
2 MingGW-W64
這個編譯成功的關(guān)鍵
C:\mingw64\mingw64\bin>.\gcc.exe --version
gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
下載與安裝也需要注意:(參考:https://zhuanlan.zhihu.com/p/76613134)
下載去官網(wǎng) http://mingw-w64.org/ 下載頁面悲龟,選擇: MingW-W64-builds
安裝界面選擇這也是個關(guān)鍵點
version ,可以選擇最高版本
architecture - > 64位機器就選擇x86_64 屋讶,32位選擇i686
Threads : 選擇 **posix!!!!!!!!!!! *(unix系統(tǒng)) ,我之前選擇了win32導(dǎo)致編譯不成功
1.編譯不成功 : versionhelpers.h : not such file or directory
cmake加個參數(shù):-DLLVM_INCLUDE_BENCHMARKS=OFF
或者修改cmakelists.txt中的LLVM_INCLUDE_BENCHMARKS ON 改成OFF
2. 編譯90%退出
F:/ndk/z3/bin/libz3.lib: error adding symbols: File format not recognized
collect2.exe: error: ld returned 1 exit status
安裝一個z3 须教,和你平臺對應(yīng)皿渗,32位還是64位