Methods, systems, and computer readable media for preventing software piracy and protecting digital documents using same
First Claim
1. A method for preventing software piracy, the method comprising:
- specifying a codemark that is intrinsic to a computing system;
providing an application with a first embedded silent guard, the first embedded silent guard including a first portion that uses the codemark and produces a guarded value that depends on the codemark, the first silent guard further including a second portion that uses the guarded value as a value for an ordinary program variable in the application and that produces an output that depends on the guarded value;
executing the first and second portions, wherein the second portion causes the application to malfunction or take another protective action when the guarded value is not equal to an expected value; and
providing a second silent guard embedded in the application.
1 Assignment
0 Petitions
Accused Products
Abstract
The subject matter described herein includes methods, systems, and computer readable media for preventing software piracy. One method includes specifying at least one codemark that is intrinsic to a computing system. The method further includes inserting guard code in an application. The guard code including a first code portion that uses a codemark and produces an output that depends on a value of the codemark and a second code portion that uses the output of the first code portion. The method further includes executing the first and second code portions and selectively triggering a protective action based on the output of the second code portion. Multiple types, styles, and frequencies of guard codes can be used to provide in-depth, long lasting, and strong protection.
13 Citations
39 Claims
-
1. A method for preventing software piracy, the method comprising:
- specifying a codemark that is intrinsic to a computing system;
providing an application with a first embedded silent guard, the first embedded silent guard including a first portion that uses the codemark and produces a guarded value that depends on the codemark, the first silent guard further including a second portion that uses the guarded value as a value for an ordinary program variable in the application and that produces an output that depends on the guarded value;
executing the first and second portions, wherein the second portion causes the application to malfunction or take another protective action when the guarded value is not equal to an expected value; and
providing a second silent guard embedded in the application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- specifying a codemark that is intrinsic to a computing system;
-
10. A system for preventing software piracy, the system comprising:
- a computing system including at least one processor;
a codemark intrinsic to the computing system; and
an application configured to execute on the processor, wherein the application includes a first silent guard including a first portion that uses the codemark and produces a guarded value that depends on the codemark, the first silent guard including a second portion that uses the guarded value as a value for an ordinary program variable in the application and that produces an output that depends on the guarded value, wherein the application is configured to execute the first and second portions, wherein the second portion causes the application to malfunction or take another protective action when the guarded value is not equal to an expected value and wherein the application includes a second silent guard embedded in the application. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
- a computing system including at least one processor;
-
19. A non-transitory computer readable medium having stored thereon executable instructions that when executed by a processor of a computer control the computer to perform steps comprising:
- storing a codemark on a computing system;
executing an application with a first embedded silent guard, the first silent guard including a first portion that uses the codemark and produces a guarded value that depends on the codemark, the first silent guard further including a second portion that uses the guarded value as a value for an ordinary program variable in the application, wherein the ordinary program variable produces an output that depends on the first guarded value;
executing the first and second portions, wherein the second portion causes the application to malfunction or take another protective action when the guarded value is not equal to an expected value and wherein the application includes a second embedded silent guard.
- storing a codemark on a computing system;
-
20. A method for preventing unauthorized access to a document, the method comprising:
- encrypting a digital document using an encryption algorithm;
installing the encrypted digital document and a shared secret for decrypting the digital document into a reader application such that the digital document can only be viewed using the reader application and the shared secret; and
tying the reader application to a computing system using a first silent guard and a codemark, wherein the first silent guard includes a first portion that uses the codemark and produces a guarded value that depends on the codemark, the first silent guard further includes a second portion that uses the guarded value as a value for an ordinary program variable in the reader application and that produces an output that depends on the guarded value, wherein the second portion causes the reader application to malfunction or take another protective action when the guarded value is not equal to an expected value and wherein a second silent guard is embedded in the reader application. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
- encrypting a digital document using an encryption algorithm;
-
29. A system for preventing unauthorized access to an electronic document, the system comprising:
- at least one hardware processor coupled to a memory, the memory storing a document protection module that is executed by the at least one hardware processor;
a reader application for displaying digital documents on a computing system;
the document protection module associated with the reader application for encrypting a digital document using an encryption algorithm and for installing the encrypted digital document and a shared secret for decrypting the digital document into a reader application such that the digital document is only viewed using the reader application and the shared secret; and
a first silent guard associated with the reader application, wherein the first silent guard includes a first portion that uses a codemark and produces a guarded value that depends on the codemark, the first silent guard further includes a second portion that uses the guarded value as a value for an ordinary program variable in the application and that produces an output that depends on the guarded value, wherein the second portion causes the reader application to malfunction or take another protective action when the guarded value is not equal to an expected value and wherein a second silent guard is embedded in the reader application. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38)
- at least one hardware processor coupled to a memory, the memory storing a document protection module that is executed by the at least one hardware processor;
-
39. A non-transitory computer readable medium having stored thereon executable instructions that when executed by a processor of a computer control the computer to perform steps comprising:
- encrypting a digital document using an encryption algorithm;
installing the encrypted digital document and a shared secret for decrypting the digital document into a reader application such that the digital document is only viewed using the reader application and the shared secret; and
tying the reader application to a computing system using a silent guard and a codemark, wherein the silent guard includes a first portion that uses the codemark and produces a guarded value that depends on the codemark, the silent guard further includes a second portion that uses the guarded value as a value for an ordinary program variable in the application and that produces an output that depends on the guarded value, wherein the second portion causes the reader application to malfunction or take another protective action when the guarded value is not equal to an expected value and wherein the reader application includes an embedded second silent guard.
- encrypting a digital document using an encryption algorithm;
Specification