Method and apparatus for protecting software
First Claim
1. A method of protecting a software program recorded within a storage medium for use with or transmission to computer or processor based hardware, the method comprising:
- inputting a hardware code uniquely associated with the particular hardware with which the software is to be employed;
inputting a first software code uniquely associated with the particular embodiment of the software being employed;
performing a first predetermined operation upon the hardware code and the first software code to produce a first intermediate code;
inputting a unique activation code for the particular embodiment of the software being employed, the activation code being received from a software supplier;
performing a second predetermined operation upon the first intermediate code and the activation code to produce a second intermediate code;
comparing the second intermediate code with a second software code uniquely associated with the particular embodiment of the software being employed and stored at a hidden location within the software, the second software code not being ascertainable by the user; and
enabling the use of the software if the second intermediate code and the second software code are identical.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for protecting a software program recorded within a storage medium for use with or transmission to computer or processor based hardware comprises inputting a hardware code uniquely associated with the particular hardware and inputting a first software code uniquely associated with the particular embodiment of the software. A first predetermined operation is performed upon the hardware code and the first software code to produce an intermediate code. A unique activation code obtained from the software supplier is inputted and a second predetermined operation is performed upon the intermediate code and the activation code to produce a second intermediate code. The second intermediate code is compared to a second software code uniquely associated with the particular embodiment of the software and stored in a hidden location within the software. The use of the software is enabled only if the second intermediate code and the second software code are identical.
-
Citations
20 Claims
-
1. A method of protecting a software program recorded within a storage medium for use with or transmission to computer or processor based hardware, the method comprising:
-
inputting a hardware code uniquely associated with the particular hardware with which the software is to be employed; inputting a first software code uniquely associated with the particular embodiment of the software being employed; performing a first predetermined operation upon the hardware code and the first software code to produce a first intermediate code; inputting a unique activation code for the particular embodiment of the software being employed, the activation code being received from a software supplier; performing a second predetermined operation upon the first intermediate code and the activation code to produce a second intermediate code; comparing the second intermediate code with a second software code uniquely associated with the particular embodiment of the software being employed and stored at a hidden location within the software, the second software code not being ascertainable by the user; and enabling the use of the software if the second intermediate code and the second software code are identical. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of preventing use of an unauthorized copy of a computer software program recorded within a storage medium for use in computer hardware by preventing the software from operating in the absence of a proper activation code, the method comprising:
-
inputting a numeric hardware code uniquely associated with the particular hardware with which the software is to be employed; inputting a first numeric software code uniquely associated with the particular software storage medium; performing a first predetermined mathematical operation upon the hardware code and the first software code to produce a first numeric intermediate code; inputting a numeric activation code received from a software supplier, the activation code being uniquely determined for activation of the software having the particular first software code for use with hardware having the particular hardware code; performing a second predetermined mathematic operation upon the first numeric intermediate code and the numeric activation code to produce a second numeric intermediate code; comparing the second numeric intermediate code with a second numeric software code uniquely associated with the particular storage medium and stored at a hidden location within the software, the second numeric software code not being ascertainable by the user, the second numeric software code being changed in a predetermined manner each time the software is copied; and enabling the use of the software if the second numeric intermediate code and the second numeric software code are identical. - View Dependent Claims (11, 12, 13)
-
-
14. A method of generating an activation code for enabling the use of a software program with particular computer or processor based hardware, the method comprising:
-
obtaining from the user a hardware code uniquely associated with the particular hardware with which the software is to be employed; obtaining from the user a first software code uniquely associated with the particular embodiment of the software being employed; performing a predetermined operation upon the hardware code and the first software code to produce a first intermediate code; obtaining a second software code uniquely associated with the particular embodiment of the software from stored information corresponding to the first software code; and performing a predetermined operation upon the first intermediate code and the second software code to produce the activation code.
-
-
15. A system for protecting a software program recorded within a storage medium for use with, or transmission to, computer or processor based hardware, the system comprising:
-
means for inputting a hardware code uniquely associated with the particular hardware with which the software is to be employed; means for inputting a first software code uniquely associated with the particular embodiment of the software being employed; computer means for performing a first predetermined operation upon the hardware code and the first software code to produce a first intermediate code; means for inputting a unique activation code for the particular embodiment of the software being employed, the activation code being received from a software supplier; computer means for performing a second predetermined operation upon the first intermediate code and the activation code to produce a second intermediate code; computer means for comparing the second intermediate code with a second software code uniquely associated with the particular embodiment of the software and stored at a hidden location within the software, the second software code not being ascertainable by the user; and means for enabling the use of the software if the second intermediate code and the second software code are identical. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification