A method for regulating execution of an application program includes a
process for preparing the application and a process for executing the
application. The preparation process divides the application program into
related segments and encrypts instructions of at least one segment. The
preparation process positions encrypted instructions in at least two
discontiguous regions within an executable file and associates header
information with at least one discontiguous region. The header identifies
a decryption key and the location of the other discontiguous region. The
resulting execution file thus has portions that would not execute and
would cause an operating system to call a responsive process. The
execution process initiates execution of the protected application when
at least a portion of the application instructions are available to the
computer only in encrypted form. The user is authenticated, after which
the encrypted portions can be decrypted and execution resumed. The
processes may also include capability to detect and respond to tampering,
or the ability to block execution snooping via a debugger.