1. windows 编译

1. 2 编译工具安装

1.2.1 下载w64devkit

w64devkit

1.2.2 添加环境变量

在这里插入图片描述

1.2.3 验证一下

在这里插入图片描述

1.3 下载llvm-18.1.8rel

百度网盘地址:
链接: https://pan.baidu.com/s/1hbXmOxqc1Vln-CWLXT5Ulw?pwd=ur9m 提取码: ur9m

1.4 编译

cmake -S llvm -B build -G "MinGW Makefiles" -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_NEW_PASS_MANAGER=OFF
cd build
mingw32-make.exe -j8

在这里插入图片描述

2. Android studio增加混淆编译

2.1 替换NDK中clang

将Hikari-LLVM15-llvm-18.1.8rel\build\bin下的clang.exe、clang++.exe、clang-cl.exe
替换到ndk\27.1.12297006\toolchains\llvm\prebuilt\windows-x86_64\bin目录
注意:Hikari-LLVM15对应ndk27

2.2 配置混淆编译项

android {
	ndkVersion = "27.1.12297006"
}

CMakeLists.txt增加编译选项

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mllvm -enable-funcwra -mllvm -enable-fco -mllvm -enable-splitobf -mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf -mllvm -enable-acdobf")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -enable-funcwra -mllvm -enable-fco -mllvm -enable-splitobf -mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf -mllvm -enable-acdobf")
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)

注意:当配置选项-mllvm -enable-allobf时报错,原因未知
更多编译选项参考:
https://github.com/HikariObfuscator/Hikari/wiki/Usage

3. Linux编译安装

unzip Hikari-LLVM15-llvm-18.1.8rel.zip
cd Hikari-LLVM15-llvm-18.1.8rel

rm -rf build/*
cmake -S llvm -B build -G "Unix Makefiles" -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_NEW_PASS_MANAGER=OFF

cd build
make -j8
make install

4. Linux下增加混淆编译

4.1 在CMakeLists.txt中设置clang编译器


set(CMAKE_C_COMPILER "clang")
set(CMAKE_CXX_COMPILER "clang++")

4.2 CMakeLists.txt中设置混淆编译选项

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mllvm -enable-funcwra -mllvm -enable-fco -mllvm -enable-splitobf -mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf -mllvm -enable-acdobf")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -enable-funcwra -mllvm -enable-fco -mllvm -enable-splitobf -mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf -mllvm -enable-acdobf")
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)

参考:
https://blog.csdn.net/weixin_45582916/article/details/141965485
https://www.cnblogs.com/maiiiii/p/17553519.html

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐