v0.9.0-rc1
Pre-release
Pre-release
·
39 commits
to main
since this release
xollvm — v0.9.0-rc1
Built against stock LLVM release/22.x.
Prerelease. Headline change: the obfuscator now runs inside a normal
clang/clang-clcompile via the default-off-enable-obfuscationflag —
nooptround-trip, so it drops straight into Visual Studio / MSBuild.
What's new (vs v0.8.0)
Added
- In-compiler obfuscation — default-off
-enable-obfuscationflag runs the
obfuscator during a normalclang/clang-cl-ccompile via a PipelineStart
extension point. Nooptround-trip; enables Visual Studio / MSBuild
integration. Off by default → pipeline byte-identical; annotation-gated →
un-annotated code untouched. (#7) - vcall: encrypted, runtime-filled vtable behind the
encTableknob. (#4) - constenc:
wrapMBAoption to wrap encrypted constants in MBA. (#5)
Fixed
- Correctness fixes in the
bcf,flattening, andsplitpasses. (#3) - Corrected
docs/USER.md: the oldclang -mllvm -passes=obfuscationrecipe was
invalid (clang has no-passes); replaced with the-enable-obfuscationflow.
Tooling
- Deobfuscation resilience benchmark (Z3/angr attacks across passes). (#6)
Docs
USER.mdclang/clang-cl + Visual Studio/MSBuild integration guide.- Refreshed VM diagrams and annotation knobs (
obf_annotations.h).
Using it in Visual Studio
- Extract
xollvm-windows-Release.7z, e.g. toC:\xollvm\(soC:\xollvm\bin\clang-cl.exeexists). - Install the LLVM Compiler Toolchain VS extension (once) →
LLVM (clang-cl)toolset. - Project → Properties → General → Platform Toolset = LLVM (clang-cl); LLVM → LLVM Toolchain Directory =
C:\xollvm. - C/C++ → Command Line → Additional Options:
/clang:-mllvm /clang:-enable-obfuscation /clang:-mllvm /clang:-obf-seed=1 /clang:-mllvm /clang:-obf-deterministic - Annotate functions:
__attribute__((annotate("obf: mba, bcf, flattening"))). - Build (Release
/O2fine — obfuscation survives the optimizer).
Artifacts
| File | What | OS |
|---|---|---|
xollvm-linux-Release.tar.zst |
clang/opt with obfuscator built in | Linux x86_64 |
xollvm-windows-Release.7z |
clang/opt with obfuscator built in | Windows x64 |
Obfuscator-linux-x64.so |
loadable -fpass-plugin |
Linux x86_64 |
Cross-compilation backends
-DLLVM_TARGETS_TO_BUILD="X86;AArch64;ARM;RISCV" — X86, AArch64, ARM, RISC-V.