Obfuscator-LLVM
github.com
What it is
Obfuscator-LLVM is a free, open-source LLVM fork for Linux that applies obfuscation while software is compiled. It is intended to make programs harder to reverse engineer or modify. Listed passes include instruction substitution, bogus control flow, and control-flow flattening, with function annotations also available. Its intermediate-representation approach covers languages supported by LLVM, including C, C++, Objective-C, Ada, and Fortran. Listed targets include x86, x86-64, PowerPC, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ, and XCore. Installation involves cloning the source repository, then building with CMake and make; binaries are placed in build/bin. The guide describes compiler use through Clang, autotools, and a custom Xcode plugin. The latest official non-development branch is llvm-4.0, based on LLVM 4.0.1. The project says obfuscated code can be slower and larger, and describes itself as an advanced prototype needing more testing before production use.
Spec sheet
- Purpose
- Obfuscator-LLVM is an open-source LLVM fork intended to strengthen software against reverse engineering and modification at compile time.Read 7 Oct 2026 · github.com
- Integrations
- The guide describes using the compiler through Clang, with an autotools build, and through a custom Xcode plugin.Read 7 Oct 2026 · github.com
- License
- The obfuscation passes are distributed under the University of Illinois/NCSA Open Source License, which permits use, modification, and distribution subject to its conditions.Read 7 Oct 2026 · github.com
- Founded
- 2010Read 28 Sep 2026 · github.com
- Build and download
- The installation guide instructs users to clone the source repository and build it with CMake and make; the resulting binaries are placed in build/bin.Read 7 Oct 2026 · github.com
- Function annotations
- The feature list also includes function annotations.Read 7 Oct 2026 · github.com
- Obfuscation passes
- The listed passes are instruction substitution, bogus control flow, and control-flow flattening.Read 7 Oct 2026 · github.com
- Performance
- The FAQ says obfuscated code will be slower and larger, with the impact depending on code and obfuscation settings.Read 7 Oct 2026 · github.com
- Production suitability
- The FAQ describes the project as an advanced prototype and says it needs substantially more testing before production use.Read 7 Oct 2026 · github.com
- Security limits
- The FAQ says the project should not be considered very secure and may only slow a typical reverse engineer; it notes constants and buffers are not scrambled.Read 7 Oct 2026 · github.com
- Supported languages
- The project says its intermediate-representation approach makes it compatible with languages supported by LLVM, including C, C++, Objective-C, Ada, and Fortran.Read 7 Oct 2026 · github.com
- Supported targets
- The project lists LLVM targets including x86, x86-64, PowerPC, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ, and XCore.Read 7 Oct 2026 · github.com
- Tamper protection
- The FAQ says Obfuscator-LLVM does not currently implement code tamper-proofing.Read 7 Oct 2026 · github.com
- Testing
- The FAQ says the team tested with cryptographic libraries including OpenSSL, GMP, and libtomcrypt, and also MySQL and ImageMagick.Read 7 Oct 2026 · github.com
- Version limit
- The guide identifies llvm-4.0, based on LLVM 4.0.1, as the latest official non-development branch and also lists older branches.Read 7 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Free open-source LLVM fork
- Supports several obfuscation passes
- Works with LLVM-supported languages
- Many listed compilation targets
- Clang and autotools integration
Limits
- Linux platform only
- Latest official branch is llvm-4.0
- Obfuscated code can be slower and larger
- No code tamper-proofing; constants remain unscrambled
Who it suits
It suits developers who need compile-time obfuscation in LLVM-supported languages and can build and host the tool on Linux. It is also relevant to teams evaluating protection with clearly stated limitations.
Verdict
Obfuscator-LLVM provides self-hosted compile-time obfuscation with broad LLVM language and target coverage. Its own documentation describes limited protection, performance costs, and prototype status, so those constraints matter when considering production use.
Where Specifiction places it
- Code Obfuscation Software#25 of 347.4