Originally presented at RE//verse 2026
Slides Available Here: Slides.
Reverse Engineers have it backwards. You're fighting the compiler without understanding how it fights. The most skilled obfuscation engineers (and programmers!) comprehend compiled applications at the input level. They write LLVM passes that insert control flow flattening and opaque predicates directly into the build. They adopt Rust before the RE community has the tooling for it. They design custom VM bytecode that no decompiler will ever support.
It's tempting to leap directly into a compiled binary, but the best way to defeat a transformation is to write it yourself. In this talk, we will stop treating the binary as a black box and start treating the compiler as a surgical tool. We'll build obfuscation techniques, hostile optimizations, and LLVM customizations from scratch. Using Compiler Explorer, C++ Insights, and BinDiff, we'll map each technique from source, to assembly, to decompiled binary.
Stop guessing at the output. Master the input.