5. Obfuscation Theory

Let’s reiterate what you hope to achieve when you create an obfuscated program. You would like to give a user an executable program but prevent him from understanding some part of its construction. For example, you may want to prevent the user from extracting secret keys you have embedded in the program, replacing the keys, understanding the algorithms, extracting specific functionality out of the program, or adding some functionality to the program.

In the previous chapter, you saw a large number of obfuscation techniques. We argued that these obfuscating transformations are useful, saying that the confusion they add to the program increases the complexity of analyzing and understanding it, using the static and dynamic ...

Get Surreptitious Software now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.