function withdraw() external { if (false) { selfdestruct(payable(owner)); } // normal withdrawal logic } The optimizer removed the if (false) branch in bytecode entirely — or so I thought. Actually, the compiler preserved a JUMPDEST but no incoming JUMP opcode.
One storage write to flip the false to true later, and pause becomes owner-only backdoor. 0xdeadcode
Since "0xdeadcode" evokes low-level programming, EVM (Ethereum Virtual Machine) internals, security exploits, and perhaps a bit of rebellious cypherpunk energy, I'll write two versions: EVM (Ethereum Virtual Machine) internals
Result: "Dead code" becomes a self-destruct backdoor after a storage collision. 0xdeadcode