Patent ID: 8010773

Claim:
A system for restricting execution of portions of an application program, said system comprising: a memory area for storing an application program, said application program having a plurality of functions associated therewith, said memory area being associated with a computing device, said computing device having one or more hardware components associated therewith, said memory area further storing one or more unauthorized hardware state signatures; and a processor programmed to: select a first function from the plurality of functions associated with the application program stored in the memory area; identify at least one of the hardware components; define an expected state for the identified hardware component; modify the selected first function to depend on the defined, expected state of the identified hardware component for execution; identify a second function from the plurality of functions, said identified second function calling the first function; modify the identified second function to transform an execution state of the identified hardware component into the defined expected state prior to calling the first function; observe a plurality of state changes to the identified hardware component during execution of the application stored in the memory area to define an observed hardware state signature; compare the observed hardware state signature to the unauthorized hardware state signatures stored in the memory area; and execute the selected first function only if the identified hardware component has the defined, expected state and the observed hardware state signature does not match any of the unauthorized hardware state signatures based on the comparison.