SIMULTANEOUS TAMPER-PROOFING AND ANTI-PIRACY PROTECTION OF SOFTWARE
First Claim
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.
2 Assignments
0 Petitions
Accused Products
Abstract
Simultaneous tamper-proofing and anti-piracy protection of software is provided by splitting applications into two parts: an application, and an application launcher. The application is subject to the tamper-proofing protections deployed by a networked service, while the application launcher is subject to anti-piracy protections. To ensure that the application benefits from the anti-piracy protection of the application launcher, the application and application launcher share a trusted challenge-response relationship. The application includes a challenger library for issuing challenges to the application launcher, and the application launcher includes a responder library for responding to such challenges.
50 Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer readable medium having computer executable instructions for a software development kit, comprising:
-
at least one library comprising challenger functions and a responder functions, wherein said challenger functions and said responder functions are unique to said software development kit; said at least one library configurable for integrating into a software application, wherein said library in said software application is configured to generate challenges to a launcher; said at least one library configurable for integrating into a launcher corresponding to said software application, wherein said library in said launcher is configured to establish communications with said software application, and said library in said launcher is further configured to generate responses to said challenges; instructions for protecting said software application from piracy by tying functions of said launcher to operation of anti-piracy software. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for simultaneous tamper-proofing and anti-piracy protection of software, comprising:
-
providing a networked service that interacts with software applications, said networked service requiring tamper-proofing protections for said software applications, said tamper-proofing protections comprising one or more of anti-debugger protection and module authentication protection; distributing a Software Development Kit (SDK) for developing an application that interacts with said networked service; said SDK comprising at least one library that is configurable for integration into an application launcher, said application launcher having a trusted challenge-response relationship with said application; said at least one library comprising challenger functions for insertion into said application, and responder functions for insertion into said application launcher; said SDK further comprising information for using anti-piracy protection to protect said application and application launcher by tying said anti-piracy protection to said application launcher, wherein said anti-piracy protection comprises at least a component for on the fly replacement of executing code pages of said application launcher. - View Dependent Claims (20)
-
Specification