A digital rights management system permits an application owner to cause
code to be injected into the application's run-time instruction stream so
as to restrict execution of that application to specific hardware
platforms. In a first phase, an authorizing entity (e.g., an application
owner or platform manufacturer) authorizes one or more applications to
execute on a given hardware platform. Later, during application run-time,
code is injected that performs periodic checks are made to determine if
the application continues to run on the previously authorized hardware
platform. If a periodic check fails, at least part of the application's
execution string is terminated--effectively rendering the application
non-usable. The periodic check is transparent to the user and difficult
to circumvent.