1. A computer readable medium having computer executable instructions, comprising: instructions for a software application launcher; instructions for a corresponding software application; said software application and said software application launcher each comprising instructions for performing an initial handshake with each other to establish a shared secret; said software application comprising instructions for generating a plurality of challenges to said software application launcher, said plurality of challenges being generated after said initial handshake, and each of said plurality of challenges being generated at a different time during the execution of said software application, and each of said plurality of challenges being based on a current state of said software application at a time that a challenge is generated; said software application launcher comprising instructions for generating responses to said plurality of challenges, said instructions for generating responses comprising at least instructions for responding to a first challenge and for updating a state of said software application launcher to prepare for responding to a next challenge; said software application comprising instructions for disabling itself when a correct response is not timely received from said instructions for generating responses to said plurality of challenges; and instructions for tying anti-piracy protection of said software application launcher into said instructions for generating responses to said plurality of challenges.