FAQs

Frequently Asked Questions

We answer more technical questions here that are often asked.

Does CodeDefender keep my binary?

We only cache your uploaded PE for the duration of the obfuscation. That is why every time you upload the PE, it has to go through the process of re-analyzing. We don’t want the liability of storing your PE files, nor do we have any reason to keep them.

Do we support Wine/Proton?

Yes, our commitment to supporting Wine and Proton is unwavering. While it's important to note that not every technique we employ may fully support these platforms, our core methods are designed with compatibility in mind and prioritize seamless functionality with Wine and Proton.

Do we support ARM?

Not yet. The current market demand heavily favors PE files with x86 instructions as the dominant force. However, we recognize the rising popularity of ARM architecture in desktop computing and have plans to support it.

Do we support Linux or macOS?

Not yet. At present, our focus is on the Windows executable file format. However, we are committed to maintaining compatibility with Wine and Proton. Support for ELF and Mach-O file formats is also on our roadmap for the future.

Do we support UEFI?

Yes. Our support extends to UEFI modules that contain x86 code, ensuring compatibility and functionality across these platforms.

Do we support Rust programs?

Yes, we support any compiled 64-bit PE executable.

Do we support C# AOT?

Yes we support C# programs compiled AOT.

Do we support kernel drivers?

Yes, CodeDefender supports kernel drivers, UEFI modules, DLLs, and executables.

Do we support ACG?

Yes, CodeDefender supports ACG; however, some functionalities, such as import protection, may not support ACG. However, the core protection features such as the mutation engine and constant obfuscation do not break ACG.

Do we support CET?

Yes, CodeDefender has full support for CET.

Do we support SEH?

Yes, we have gone to incredible lengths to support SEH, including C++ exceptions (both 3 and 4). It’s important to note that we support both SEH and CET at the same time. You do not need to compromise one for the other. There is absolutely no configuration required to obfuscate functions that use SEH. No need to write code markers or edit source code. We fully support it by default.

Do we support SSE? AVX? BMI? x87 FPU?

Yes, we support all instructions and seamlessly include ones we don’t lift directly into the obfuscated code. We do not "box" instructions like other providers do, which can impact microarchitectural optimizations.

How stable is CodeDefender?

We are able to obfuscate 95% of Chrome functions, and we use this Chrome to do Zoom calls with investors and potential customers. We believe in our stability.

Do we support 32-bit?

No, we do not support 32-bit PE files.

Does CodeDefender require a PDB?

No, CodeDefender doesn’t require one; however, it will make it easier for you to select the functions you want to obfuscate.

Do CodeDefender-protected binaries run under a CPU emulator?

icicle-emu will not correctly emulate binaries protected with CodeDefender. We have not fully tested Unicorn-engine (QEMU) ability to emulate our binaries yet.