-
-
[开源]Hikari提取llvm pass混淆
-
发表于:
2025-1-29 01:51
4151
-
项目地址: Hikari-LLVM19
enable-strcry在rust中可能存在问题,其他自行测试
Warning: 仅在mac arm64上编译通过,未经过完全测试
混淆插件提取自 Hikari-LLVM15 By 61bcdefg 项目。
第一次做这种东西,非常感谢0xlane大佬的代码让我少踩很多坑,在这里贴上他的项目地址 ollvm-rust
Macos 15.2
LLVM 19.1.7
1 2 3 4 5 | cmake -G "Ninja" -S . -B . /build \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DLT_LLVM_INSTALL_DIR= /opt/homebrew/opt/llvm @19
|
注意要将 LT_LLVM_INSTALL_DIR 换为自己,CMake里硬编码了,也要替换
动态加载 llvm pass 插件需切换到 nightly 通道
1 | rustup toolchain install nightly
|
生成一个示例项目,通过 -Zllvm-plugins
参数加载 pass 插件,并通过 -Cpasses
参数指定混淆开关:
1 2 3 | cargo new helloworld --bin
cd helloworld
cargo +nightly rustc --release -- -Zllvm-plugins= "path/to/libHikari.dylib" -Cpasses= "hikari(enable-fco,enable-strcry)..."
|
1 2 3 4 5 6 7 8 9 10 11 | clang -emit-llvm -c input.c -o input. bc
opt -load-pass-plugin= "path/to/libHikari.dylib" --passes= "hikari(enable-fco,enable-strcry)..." input. bc -o output. bc
llc -filetype=obj output. bc -o output.o
clang output.o -o output
|
Hikari-LLVM15 By 61bcdefg
ollvm-rust By 0xlane
[注意]看雪招聘,专注安全领域的专业人才平台!
最后于 2025-1-29 01:57
被PPKun编辑
,原因: