Date Added: Nov 2009
In this paper, the authors present a program obfuscation method that is based on the combination of strong encryption of code and data and a CPU simulator (CSPIM) that implements the MIPS I instruction set. Their method is different from existing methods in that only a single word (32-bits) of the protected code or data is present as plain-text in main memory. Furthermore, their method allows the possibility of externally supplying the decryption key to the simulator. They have extensively tested the simulator, and it is able to successfully execute C programs compiled by the gcc cross-compiler. Even though purely software-based method cannot provide perfect protection, they argue that this approach significantly raises the bar for reverse-engineers, especially when combined with existing program obfuscation techniques.