- Home
- Code Obfuscation Software
- Obfuscator-LLVM
Obfuscator-LLVM
What it is
Obfuscator-LLVM is an open-source LLVM fork that applies obfuscation during compilation to make software harder to reverse engineer or modify. Its listed passes include instruction substitution, bogus control flow, and control-flow flattening; function annotations are also included. The project says its LLVM intermediate-representation approach supports languages handled by LLVM, including C, C++, Objective-C, Ada, and Fortran. Listed targets include x86, x86-64, ARM, PowerPC, MIPS, SPARC, and SystemZ, among others. The Linux-based, self-hosted tool is built by cloning its source repository and using CMake and make; the resulting binaries are placed in build/bin. The guide also describes using it through Clang, an autotools build, and a custom Xcode plugin. The guide identifies llvm-4.0, based on LLVM 4.0.1, as the latest official non-development branch. The project warns that obfuscated code can be slower and larger, that constants and buffers are not scrambled, and that code tamper-proofing is not implemented. It describes the software as an advanced prototype that needs substantially more testing before production use.
For and against
For
- Includes three listed obfuscation passes
- Supports languages handled by LLVM
- Documents use through Clang and an Xcode plugin
Against
- Code may become slower and larger
- Constants and buffers are not scrambled
- Code tamper-proofing is not implemented
- The project says it needs more testing before production use
The verdict
Obfuscator-LLVM offers several compile-time obfuscation techniques within an LLVM-based workflow. Its FAQ describes meaningful protection limits and calls for more testing before production use.
Who it suits
Obfuscator-LLVM suits developers familiar with LLVM who want compile-time obfuscation for Linux-based workflows. It is not presented as a production-ready or tamper-proofing solution.
Plans and prices
Obfuscator-LLVM
Open-source LLVM fork · commercial version was available until end of 2016
Read 7 Oct 2026 · github.com
On the record
- 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.github.com · read 7 Oct 2026
- Function annotations
- The feature list also includes function annotations.github.com · read 7 Oct 2026
- Integrations
- The guide describes using the compiler through Clang, with an autotools build, and through a custom Xcode plugin.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- Obfuscation passes
- The listed passes are instruction substitution, bogus control flow, and control-flow flattening.github.com · read 7 Oct 2026
- Performance
- The FAQ says obfuscated code will be slower and larger, with the impact depending on code and obfuscation settings.github.com · read 7 Oct 2026
- Production suitability
- The FAQ describes the project as an advanced prototype and says it needs substantially more testing before production use.github.com · read 7 Oct 2026
- Purpose
- Obfuscator-LLVM is an open-source LLVM fork intended to strengthen software against reverse engineering and modification at compile time.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- Supported targets
- The project lists LLVM targets including x86, x86-64, PowerPC, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ, and XCore.github.com · read 7 Oct 2026
- Tamper protection
- The FAQ says Obfuscator-LLVM does not currently implement code tamper-proofing.github.com · read 7 Oct 2026
- Testing
- The FAQ says the team tested with cryptographic libraries including OpenSSL, GMP, and libtomcrypt, and also MySQL and ImageMagick.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026