There is a long tradition of the copy protection and rights management associated with the software products. Among different techniques used, one of the most common is license enforcement: every copy of software has an associated digital "license" which provides the user permission to run the software. When software starts up, it checks this license and if it is not valid, refuses to run.
a) Assume the "license" is just a digitally signed file listing a hostname and expiration date; the verification key is built into the executable. How would you go about circumventing this kind of license check?
b) Now assume that the "license" is actually a piece of hardware which responds to cryptographic challenges at regular intervals. The hardware device, has a certificate signed by the rights owner, whose public key is built into software. How does this affect circumvention?