Automatic Generation of Embedded Interpreters for Software Protection

Period of Performance: 05/16/2003 - 02/28/2004


Phase 1 SBIR

Recipient Firm

Architecture Technology Corp.
9971 Valley View Road Array
Eden Prairie, MN 55344
Principal Investigator


We begin with the observation that table interpretation, or embedded interpreters, is an effective technique for software reverse engineering protection. The scientific literature does not indicate any attempt to address the technical problems required to implement table interpretation as a general automatic software protection technique. We propose an architecture that is capable of automatically generating a specification of an abstract machine, randomly permuted along several axes. Preexisting binary programs are then translated to programs for the abstract machine, either by a hand coded translator, or by an automatically generated translator. We propose to build a hand-coded embedded interpreter implementation as a proof of concept of the feasibility of the approach, and as a demonstration of the runtime slowdown involved. This architecture will allow engineers to automatically employ a technique that is recognized as highly effective by the obfuscation community. The end product will be an automatic obfuscation module that can automatically perform the transformation, subject to as much control over the parameterization of the embedded interpreter as the user desires.