📄️ Module Settings
This section outlines the obfuscation settings that are applied to the entire module.
📄️ Disassembler Settings
---
📄️ Compiler Settings
Compiler settings govern the core behavior of the CodeDefender transformation pipeline. These include the instruction set assumptions used during lifting, how register volatility is handled across function calls, and how function call semantics are modeled in IR.
📄️ Function Obfuscation
These are the obfuscation techniques that can be applied to functions. Most of your obfuscation needs will be met by one or more of these features.
📄️ API & SDK
Welcome to the official documentation for the CodeDefender API, CLI tools, and SDK. CodeDefender is a binary obfuscation platform designed to protect compiled programs against reverse engineering and static analysis.
📄️ Debug Information
When using the SaaS platform, a .dbg file can be requested alongside your obfuscated binary. This file contains a binary mapping of address ranges from the original binary to the obfuscated version, enabling precise reverse mapping of code locations.
📄️ SSA Ethnicity
Each SSA value in our intermediate representation (IR), and therefore each IR instruction, is tagged with an ethnicity that indicates the origin or role of that value in the original machine code. Transformation passes may be configured to operate selectively on one or more ethnicities while leaving others unchanged.
📄️ Function Rejections
CodeDefender is fundamentally a partial binary rewriter—meaning there will always be a small subset of functions that we cannot locate, analyze, or safely transform. This is a known limitation of binary rewriting in general. Significant research has gone into ensuring robustness and stability in our rewriting process; without this foundation, any attempt at binary recompilation or obfuscation would be as fragile as the underlying transformation techniques themselves.
📄️ Rust Binaries
CodeDefender fully supports obfuscation of Rust-compiled binaries. However, certain compiler optimizations and platform targets can interfere with analysis or lifting. This page outlines known challenges and how to resolve them.
📄️ Tether
Tether is a project designed to extract groups of CPU instructions from a compiled binary (x86_64 PE file) and execute them exclusively on a remote server.
📄️ UEFI Modules
To obfuscate UEFI modules using CodeDefender, it's important to consider a few key points during the build process. One of the edk2 build steps involves running GenFw.exe, a tool documented on the EDK2 Tools List.