Summary: Deobfuscation is in NP
Andrew W. Appel
August 21, 2002
Under some very general assumptions about how a
program-obfuscation works, deobfuscation is NP-easy.
While this does not immediately lead to a practical deob-
fuscation algorithm, it shows that deobfuscation is much
easier than most other exact program analyses, such as
the related problem of program optimization.
There are two important problems in the security of mo-
bile programs: protecting the host computer from the
program, and protecting the program from the host com-
puter. For the first problem, many successful techniques
apply from virtual-memory protection to type-checking
and even proof-carrying code. But the second problem
seems harder: computing a result "in full sight" of the
host computer while keeping the algorithms or interme-
diate results secret.