Computer implemented method and a computer system for enforcing software licenses
First Claim
1. A method for preventing non-authorized installation of a licensed software product provided by a software developer, with the method performed by a data processor including main memory, a CPU, and non-volatile read/write storage, and non-volatile ROM including a BIOS file including device-specific parameters unique to each data processor, and an input device for reading and writing to input storage media, said method comprising the steps of:
- providing an input media including install.exe and run.exe programs stored thereon, with said install.exe program including a shell install program, having header and middle parts, and a main install program, with the main install program being the install program supplied by the software developer and with the run.exe program including a run shell program having header and middle parts, and a main run program, with the main run program being the program supplied by the software developer, and with said middle parts of said shell main and run programs encrypted with a standard key;
transferring said install.exe program from said input media to said main memory;
executing said header part of the install shell program to decrypt said install middle part of the shell install program utilizing the standard key to generate and store in main memory a decrypted install middle part;
executing said decrypted install middle part to;
read said device-specific parameters;
fabricate a device-specific hardware key;
executing said main install program to transfer said run.exe file and files of said software product to said non-volatile read/write storage;
executing said install header part to encrypt the main run program of the run.exe file stored on said nonvolatile read/write storage utilizing the device-specific hardware key;
executing said header part of said install shell program to encrypt said instal main program utilizing said hardware key to form an encrypted main install program;
transferring said encrypted main install program to said installation media.
2 Assignments
0 Petitions
Accused Products
Abstract
A software licensing enforcement product includes a shell utilizing a device specific hardware product to encrypt the install program and the run program to prevent non-authorized devices form installing or using a software product. The shell decrypts the run program to allow the authorized device to access the software product.
-
Citations
9 Claims
-
1. A method for preventing non-authorized installation of a licensed software product provided by a software developer, with the method performed by a data processor including main memory, a CPU, and non-volatile read/write storage, and non-volatile ROM including a BIOS file including device-specific parameters unique to each data processor, and an input device for reading and writing to input storage media, said method comprising the steps of:
-
providing an input media including install.exe and run.exe programs stored thereon, with said install.exe program including a shell install program, having header and middle parts, and a main install program, with the main install program being the install program supplied by the software developer and with the run.exe program including a run shell program having header and middle parts, and a main run program, with the main run program being the program supplied by the software developer, and with said middle parts of said shell main and run programs encrypted with a standard key; transferring said install.exe program from said input media to said main memory; executing said header part of the install shell program to decrypt said install middle part of the shell install program utilizing the standard key to generate and store in main memory a decrypted install middle part; executing said decrypted install middle part to; read said device-specific parameters; fabricate a device-specific hardware key; executing said main install program to transfer said run.exe file and files of said software product to said non-volatile read/write storage; executing said install header part to encrypt the main run program of the run.exe file stored on said nonvolatile read/write storage utilizing the device-specific hardware key; executing said header part of said install shell program to encrypt said instal main program utilizing said hardware key to form an encrypted main install program; transferring said encrypted main install program to said installation media. - View Dependent Claims (2, 3, 4)
-
-
5. A method for preventing non-authorized use of a licensed software product provided by a software developer, with the method performed by a data processor including main memory, a CPU, and non-volatile read/write storage, and nonvolatile ROM including a BIOS file including device-specific parameters unique to each data processor, with a run.exe file stored on said non-volatile read/write storage including an encrypted main run program being a main run program, being part of said licensed software product encrypted utilizing a device-specific hardware key fabricated from device-specific parameters, and with a run shell program, and also including header and middle parts, with the middle part encrypted with a standard key, said method comprising the steps of:
-
loading the run.exe file stored on said non-volatile read/write storage into main memory; executing said header part of the run shell program to decrypt said run middle part of the shell install program utilizing the standard key to generate and store in main memory a decrypted run middle part; executing the decrypted middle part of the run shell to decrypt the encrypted main run program utilizing the device-specific hardware key to generate and store in main memory a decrypted main run program; execute said decrypted main run program to access the licensed software product; and erasing said decrypted main run program from main memory when use of the licensed software product is terminated.
-
-
6. A system for preventing non-authorized installation of a licensed software product provided by a software developer, said system comprising:
-
a data processor including main memory, a CPU, and non-volatile read/write storage, and non-volatile ROM including a BIOS file including device-specific parameters unique to each data processor, and an input device for reading and writing to input storage computer usable media including install.exe and run.exe programs stored thereon, with said install.exe program including a shell install program, having header and middle parts, and a main install program, with the main install program being the install program supplied by the software developer and with the run.exe program including a run shell program having header and middle parts, and a main run program, with the main run program being the program supplied by the software developer, and with said middle parts of said shell main and run programs encrypted with a standard key; with said computer usable medium having a computer readable program code embodied therein for directing operation of said substrate processing system, said computer readable program code including; computer readable program code for causing said CPU to transfer said install.exe program from said input media to said main memory; computer readable header part of a shell program code for causing said CPU to decrypt said install middle part of the shell install program utilizing the standard key to generate and store in main memory a decrypted install middle part and causing said CPU to execute said decrypted install middle part to; read said device-specific parameters; fabricate a device-specific hardware key; computer readable main install program code for causing said CPU to transfer said run.exe file and files of said software product to said non-volatile read/write storage; computer readable header part of said shell program code for causing said CPU to encrypt the main run program of the run.exe file stored on said non-volatile read/write storage utilizing the device-specific hardware key; computer readable header part of said shell program code for causing said CPU to encrypt said instal main program utilizing said hardware key to form an encrypted main install program; computer readable program code for causing said CPU to transferring said encrypted main install program to said installation media.
-
-
7. A system for preventing non-authorized installation of a licensed software product provided by a software developer, said system comprising:
-
a data processor including main memory, a CPU, and non-volatile read/write computer usable medium, and non-volatile ROM including a BIOS file including device-specific parameters unique to each data processor, with a run.exe file stored on said non-volatile read/write computer usable medium including an encrypted main run program being a main run program, being part of said licensed software product encrypted utilizing a device-specific hardware key fabricated from device-specific parameters, and with a run shell program, and also including header and middle parts, with the middle part encrypted with a standard key, with said computer usable medium having a computer readable program code embodied therein for directing operation of said substrate processing system, said computer readable program code including; computer readable program code for causing said CPU to load the run.exe file stored on said non-volatile read/write storage into main memory; computer readable header part of the run shell program code for causing said CPU to decrypt said run middle part of the shell install program utilizing the standard key to generate and store in main memory a decrypted run middle part and for causing said CPU to executing the decrypted middle part of the run shell to decrypt the encrypted main run program utilizing the device-specific hardware key to generate and store in main memory a decrypted main run program; computer readable program code for causing said CPU to execute said decrypted main run program to access the licensed software product; and computer readable program code for causing said CPU to erasing said decrypted main run program from main memory when use of the licensed software product is terminated.
-
-
8. A method for preventing non-authorized installation of a licensed software product provided by a software developer, with the method performed by a data processor including main memory, a CPU, and non-volatile read/write storage, and non-volatile ROM including a BIOS file including device-specific parameters unique to each data processor, and an input device for reading and writing to input storage media, said method comprising the steps of:
-
transferring a program image of an install file, with the program image including an unencrypted shell and an encrypted main install program, from the input storage media to main memory; executing the unencrypted shell to dynamically decrypt the encrypted main install file to generate an unencrypted main install program in memory; transferring control to said decrypted main program in main memory to install the licensed software product.
-
-
9. A method for preventing non-authorized use of a licensed software product provided by a software developer, with the method performed by a data processor including main memory, a CPU, and non-volatile read/write storage, and non-volatile ROM including a BIOS file including device-specific parameters unique to each data processor, with a run.exe file stored on said non-volatile read/write storage including an encrypted main run program, being part of said licensed software product encrypted utilizing a device-specific hardware key fabricated from device-specific parameters, and with a run.exe file also including a run shell program, that includes a header and middle parts, with the middle part encrypted with a standard key, said method comprising the steps of:
-
transferring a program image of a run file, with the program image including an unencrypted shell and an encrypted main run program, from the non-volatile read/write storage to main memory; executing the unencrypted shell to dynamically decrypt the encrypted main run file to generate an unencrypted main run program in memory; transferring control to said decrypted run program in main memory to access the licensed software product; and erasing said decrypted run file from main memory when use of said software product is terminated.
-
Specification