Software protection methods and apparatus
First Claim
1. The method of inhibiting the unauthorized copying of computer software comprising the steps of:
- (a) storing digital program information in preselected address locations of a memory means in an encrypted form according to a first predetermined algorithm;
(b) providing a computer processor for performing preselected functions only in response to the decrypted program information stored in said memory means;
(c) coupling the address and data buses of said computer processor to said memory means through an encryption/decryption means selectively operable in a first mode to encrypt/decrypt said program information according to said first predetermined algorithm and in a second mode to prevent the encryption/decryption of said program information according to said first predetermined algorithm;
(d) monitoring at least one of the address and data buses to detect trap address information, said trap address information being signified by an attempted accessing of the memory means by an operation not occurring during normal execution of the computer program; and
(e) switching said encryption/decryption means from said first operating mode to said second operating mode if a trap address is detected by said monitoring means.
8 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus are disclosed for inhibiting the unauthorized copying of ROM-resident computer software or the like, for example, the audio-visual display of an electronic video game. A protection circuit including encryption/decryption means is coupled between the microprocessor and the ROM-memory and is operable in a first mode to properly encrypt/decrypt the program information according to a first algorithm and in a second mode to prevent proper encryption/decryption. The address-data buses are monitored by the protection circuit to detect an invalid program event, such as may occur when a microprocessor emulator is used to attempt an unauthorized copying or "dumping" of the program information. Upon detection of the invalid program event or "trap condition", the protection circuit switches to its second operating mode thereby to prevent copying of the decrypted program information.
-
Citations
27 Claims
-
1. The method of inhibiting the unauthorized copying of computer software comprising the steps of:
-
(a) storing digital program information in preselected address locations of a memory means in an encrypted form according to a first predetermined algorithm; (b) providing a computer processor for performing preselected functions only in response to the decrypted program information stored in said memory means; (c) coupling the address and data buses of said computer processor to said memory means through an encryption/decryption means selectively operable in a first mode to encrypt/decrypt said program information according to said first predetermined algorithm and in a second mode to prevent the encryption/decryption of said program information according to said first predetermined algorithm; (d) monitoring at least one of the address and data buses to detect trap address information, said trap address information being signified by an attempted accessing of the memory means by an operation not occurring during normal execution of the computer program; and (e) switching said encryption/decryption means from said first operating mode to said second operating mode if a trap address is detected by said monitoring means. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computer system including a central processor for performing preselected functions in response to digital program information stored in encrypted form in a memory means, and communicated between said central processor and said memory means on address and data buses, the improvement comprising:
-
(a) encryption/decryption means, coupled between said central processor and said memory means, selectively operable in a first mode for encrypting/decrypting said program information according to a first predetermined algorithm and in a second mode according to a second predetermined algorithm for preventing the encryption/decrypting of said program information according to said first predetermined algorithm; (b) detection means for monitoring at least one of said address and data buses to detect the attempted accessing of the memory means by an operation not occurring during normal execution of the computer program; and (c) switching means for shifting said encryption/decryption means from said first operating mode to said second operating mode in response to detection of said invalid program event. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. The method of inhibiting the unauthorized copying of ROM-resident data constituting the audio-visual display information for an electronic video game comprising the steps of:
-
(a) storing the audio-visual display information of said electronic video game in encrypted, digital format in a ROM-memory; (b) providing a microprocessor, display monitor and sound system for generating the audio-visual display of said game in response to the decrypted program information stored in said memory means; (c) coupling said microprocessor to said ROM-memory through an encryption/decryption means selectively operable in a first mode to encrypt/decrypt said audio-visual display information according to a first predetermined algorithm for presenting said game in decrypted audio-visual format and in a second mode to prevent the encryption/decryption of said display information according to said first predetermined algorithm; (d) monitoring the digital program information as communicated between said microprocessor and said ROM-memory for identifying an invalid program event, said invalid program event being characterized by the attempted accessing of the memory means by an operation not occurring during normal execution of the computer program; and (e) switching said encryption/decryption means from said first operating mode to said second operating mode in an invalid program event is detected thereby to prevent copying of the encrypted audio-visual information stored in said ROM-memory.
-
-
17. A method for inhibiting the use of a microprocessor emulator to read digital program data stored in memory means in a computer system, comprising the steps of:
-
(a) storing encrypted digital program data into preselected address locations of memory means; (b) coupling address and data buses of the microprocessor to the memory means through protection circuit means for encrypting, decrypting and monitoring the addressing of the program data stored in the memory means; (c) monitoring at least one of the address and data buses to detect an attempted invalid accessing of the memory means, the invalid accessing operation being characterized by an operation not occurring during normal execution of the program; and (d) returning falsely decrypted program data through the protection circuit means to the microprocessor emulator in response to the detection of the invalid accessing operation. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A method for inhibiting the use of a microprocessor emulator to read digital program data stored in memory means in a computer system employing a microprocessor, comprising the step of:
-
(a) preselecting less than all available address locations in the memory means for storing program data; (b) storing encrypted microprocessor program data into the preselected address locations of the memory means; (c) reserving the unselected address locations in the memory means for use in the detection of sequential accessing of the memory means by the microprocessor emulator; (d) coupling address and data buses of the microprocessor to the memory means through circuit protection means for monitoring the addressing of address locations in the memory means; (e) monitoring at least one of the address/data buses to detect the accessing by the microprocessor emulator of at least one of the reserved address locations; and (f) returning false data through the circuit protection means to the microprocessor emulator in response to the detected addressing of any of the reserved address locations in the memory means. - View Dependent Claims (24)
-
-
25. A method for inhibiting the pirating of widely distributed computer software for unauthorized execution on a computer system employing a stock microprocessor, comprising the steps of:
-
(a) preselecting less than all available address locations in memory means for storing digital program data; (b) storing digital program data into the preselected address locations in the memory means; (c) coupling address and data buses of the microprocessor to the memory means through protection circuit means for selectively invalidating the program data; (d) monitoring the addressing through the protection circuit means of the program data stored in the memory means; (e) detecting the accessing of other than the preselected address locations in the memory means, thereby indicating an unauthorized attempt to copy the stored program data; and (f) selecting the protection circuit means to return from the memory means invalid program data in response to the detected unauthorized attempt to copy the stored program. - View Dependent Claims (26, 27)
-
Specification