Program obfuscation by distorted interpreter specialization
A systematic approach to deformation is to make program P obscure by transforming it to P′ on which (abstract) interpretation is incomplete.
Interpreter distortion can be done by making residual in the specialization process sufﬁciently many interpreter operations to defeat an attacker in extracting sensible information from transformed code. Potency of the obfuscator is proved with respect to a general model of the attacker, modeled as an approximate (abstract) interpreter. Our method is applied to: code ﬂattening, data-type obfuscation, and opaque predicate insertion. The technique is language independent and can be exploited for designing obfuscating compilers.