Claims Analysis
Total Claims: 135
Claim 1
Independent Claim
118 words
An apparatus for protecting a software program from unauthorized access, comprising: a read-write memory device providing output data that is inconsistent with corresponding input data, for storing the software program, the memory device being coupled to a system bus, the system bus including an address bus, a data bus, and a control bus; and an emulator detector means for detecting the presence of an emulator coupled to any of the buses included in the system bus and for providing a select signal to the read-write memory when an emulator is detected; the read-write memory device including means for receiving the select signal and means for providing erroneous data to the system bus in response to the select signal.
Claim 2
Independent Claim
118 words
An apparatus for protecting a software program from unauthorized access, comprising: a read-write memory device providing output data that is inconsistent with corresponding input data, for storing the software program, the memory device being coupled to a system bus, the system bus including an address bus, a data bus, and a control bus; and an emulator detector means for detecting the presence of an emulator coupled to any of the buses included in the system bus and for providing a select signal to the read-write memory when an emulator is detected; the read-write memory device including means for receiving the select signal and means for providing erroneous data to the system bus in response to the select signal.
Claim 3
Dependent Claim
104 words
The apparatus of claim 1, wherein the read-write memory device comprises: a random access memory, connected to the address bus and having a data interface, for storing the software program; write conversion means, connected to the data bus and the data interface, for converting data written to the random access memory; read conversion means, connected to the data bus and the data interface, for converting data read from the random access memory; and wherein the random access memory includes control logic, responsive to the select signal received by the select signal receiving means, for controlling the write conversion means and the read conversion means.
Claim 4
Dependent Claim
60 words
The apparatus of claim 2, wherein the select signal has an active state and a non-active state and wherein the control logic includes means for controlling the read conversion means to pass correct data to the data bus when the select signal is not active and for passing erroneous data to the data bus when the select signal is active.
Claim 5
Dependent Claim
37 words
The apparatus of claim 2, wherein said write conversion means and said read conversion means further include output control means for setting a direction for data flow between the random access memory means and the data bus.
Claim 6
Dependent Claim
14 words
The apparatus of claim 4, wherein said output control means is a tri-state buffer.
Claim 7
Dependent Claim
23 words
The apparatus of claim 4, wherein said write conversion means is a write path and said read conversion means is a read path.
Claim 8
Dependent Claim
72 words
The apparatus of claim 1, wherein the read-write memory means comprises: a random access memory connected to the address bus and having a data interface, for storing the software program; read conversion means, connected to the data bus and the data interface, for converting data read from the random access memory; and control logic, responsive to the select signal received by the select signal receiving means, for controlling the read conversion means.
Claim 9
Dependent Claim
60 words
The apparatus of claim 7, wherein the select signal has an active state and a non-active state and wherein the control logic includes means for controlling the read conversion means to pass correct data to the data bus when the select signal is not active and for passing erroneous data to the data bus when the select signal is active.
Claim 10
Dependent Claim
31 words
The apparatus of claim 7, wherein said read conversion means further includes output control means for setting a direction for data flow between the random access memory and the data bus.
Claim 11
Dependent Claim
14 words
The apparatus of claim 9, wherein said output control means is a tri-state buffer.
Claim 12
Dependent Claim
14 words
The apparatus of claim 9, wherein said read conversion means is a read path.
Claim 13
Dependent Claim
43 words
The apparatus of claim 1, wherein said emulator detector means comprises: monitoring means for monitoring the address bus to detect a suspect address; and means, responsive to said monitoring means, for providing the select signal when said monitoring means detects the suspect address.
Claim 14
Dependent Claim
65 words
The apparatus of claim 1, wherein said emulator detector means comprises: monitoring means for monitoring the address bus to detect a suspect address; means, responsive to said monitoring means, for providing an enable signal when said monitoring means detects the suspect address; and signal generating means for generating the select signal in response to said enable signal; wherein the select signal is an intermittent signal.
Claim 15
Dependent Claim
20 words
The apparatus of claim 12, wherein said suspect address corresponds to data in the software program indicating an abnormal condition.
Claim 16
Dependent Claim
20 words
The apparatus of claim 13, wherein said suspect address corresponds to data in the software program indicating an abnormal condition.
Claim 17
Dependent Claim
30 words
The apparatus of claim 12, wherein the suspect address corresponds to software program data stored in the read-write memory device that is not used during execution of the software program.
Claim 18
Dependent Claim
30 words
The apparatus of claim 13, wherein said suspect address corresponds to software program data stored in the read-write memory device that is not used during execution of the software program.
Claim 19
Dependent Claim
17 words
The apparatus of claim 12, wherein the suspect address is a continuous block of memory address locations.
Claim 20
Dependent Claim
17 words
The apparatus of claim 13, wherein the suspect address is a continuous block of memory address locations.
Claim 21
Dependent Claim
25 words
The apparatus of claim 12, wherein the enable signal providing means continues to provide the select signal when said monitoring means detects the suspect address.
Claim 22
Dependent Claim
25 words
The apparatus of claim 13, wherein the enable signal providing means continues to provide the enable signal when said monitoring means detects the suspect address.
Claim 23
Dependent Claim
48 words
The apparatus of claim 12, wherein the enable signal providing means continues to provide the select signal after said monitoring means detects the suspect address and wherein the emulator detector means further comprises reset means for causing the enable signal providing means to stop providing the select signal.
Claim 24
Dependent Claim
48 words
The apparatus of claim 13, wherein the enable signal providing means continues to provide the enable signal after said monitoring means detects the suspect address and wherein the emulator detector means further comprises reset means for causing the enable signal providing means to stop providing the enable signal.
Claim 25
Dependent Claim
45 words
The apparatus of claim 2, wherein the control logic is coupled to a read-write control line and a chip select line and controls the write conversion means and read conversion means in response to signals on the read-write control line and the chip select line.
Claim 26
Dependent Claim
40 words
The apparatus of claim 7, wherein the control logic is coupled to a read-write control line and a chip select line and controls the read conversion means in response to signals on the read-write line and the chip select line.
Claim 27
Independent Claim
79 words
An apparatus for protecting a software program from unauthorized access, comprising: a read-write memory device having output data that is inconsistent with corresponding input data, for storing said software program, the memory device being coupled to a system bus including an address bus, a data bus, and a control bus; and an emulator detector means for detecting the presence of an emulator coupled to the system bus and for interfering with the system bus when an emulator is detected.
Claim 28
Independent Claim
79 words
An apparatus for protecting a software program from unauthorized access, comprising: a read-write memory device having output data that is inconsistent with corresponding input data, for storing said software program, the memory device being coupled to a system bus including an address bus, a data bus, and a control bus; and an emulator detector means for detecting the presence of an emulator coupled to the system bus and for interfering with the system bus when an emulator is detected.
Claim 29
Dependent Claim
97 words
The apparatus of claim 26, wherein the read-write memory means comprises: a random access memory connected to the address bus and having a data interface, for storing the software program; write conversion means connected to the data bus and the data interface for converting data written to the random access memory; read conversion means connected to the data bus and the data interface for converting data read from the random access memory; and control logic, responsive to a read-write control signal and a chip select signal, for controlling the write conversion means and the read conversion means.
Claim 30
Dependent Claim
76 words
The apparatus of claim 26, wherein the read-write memory device comprises: a random access memory connected to the address bus and having a data interface, for storing the software program; read conversion means connected to the data bus and the data interface for converting data read from the random access memory; and control logic, responsive to a read-write control signal and a chip select signal, for controlling the write conversion means and the read conversion means.
Claim 31
Dependent Claim
36 words
The apparatus of claim 27, wherein said write conversion means and said read conversion means further include output control means for setting a direction for data flow between the random access memory and the data bus.
Claim 32
Dependent Claim
32 words
The apparatus of claim 28, wherein said read conversion means further include output control means for setting a direction for data flow between the random access memory means and the data bus.
Claim 33
Dependent Claim
14 words
The apparatus of claim 29, wherein said output control means is a tri-state buffer.
Claim 34
Dependent Claim
14 words
The apparatus of claim 30, wherein said output control means is a tri-state buffer.
Claim 35
Dependent Claim
23 words
The apparatus of claim 27, wherein said write conversion means is a write path and said read conversion means is a read path.
Claim 36
Dependent Claim
14 words
The apparatus of claim 28, wherein said read conversion means is a read path.
Claim 37
Dependent Claim
75 words
The apparatus of claim 26, wherein said emulator detector means comprises: monitoring means for monitoring the address bus to detect a suspect address; means, responsive to said monitoring means, for providing an enable signal when said monitoring means detects the suspect address; signal generating means for generating a drive signal in response to the enable signal; and driving means for driving the data bus to a particular electrical potential in response to the drive signal.
Claim 38
Dependent Claim
20 words
The apparatus of claim 35, wherein said suspect address corresponds to data in the software program indicating an abnormal condition.
Claim 39
Dependent Claim
30 words
The apparatus of claim 35, wherein said suspect address corresponds to software program data stored in the read-write memory device that is not used during execution of the software program.
Claim 40
Dependent Claim
17 words
The apparatus of claim 35, wherein the suspect address is a continuous block of memory address locations.
Claim 41
Dependent Claim
25 words
The apparatus of claim 35, wherein the select signal providing means continues to provide the select signal after said monitoring means detects the suspect address.
Claim 42
Dependent Claim
48 words
The apparatus of claim 35, wherein the select signal providing means continues to provide the select signal after said monitoring means detects the suspect address and wherein the emulator detector means further comprises reset means for causing the select signal providing means to stop providing the select signal.
Claim 43
Dependent Claim
14 words
The apparatus of claim 35, wherein said particular electrical potential is a ground potential.
Claim 44
Dependent Claim
15 words
The apparatus of claim 35, wherein said particular electrical potential is a power supply potential.
Claim 45
Dependent Claim
13 words
The apparatus of claim 35, wherein said drive signal is a continuous signal.
Claim 46
Independent Claim
64 words
A method for protecting a software program against unauthorized copying, comprising the steps of: (a) monitoring addressing of a memory containing the software program, the memory providing output data that is inconsistent with corresponding input data; (b) detecting an attempted access of a suspect address; and (c) driving data provided by the memory to a predetermined electrical potential if a suspect address is detected.
Claim 47
Independent Claim
64 words
A method for protecting a software program against unauthorized copying, comprising the steps of: (a) monitoring addressing of a memory containing the software program, the memory providing output data that is inconsistent with corresponding input data; (b) detecting an attempted access of a suspect address; and (c) driving data provided by the memory to a predetermined electrical potential if a suspect address is detected.
Claim 48
Dependent Claim
41 words
The method of claim 44, wherein said step (c) comprises: (d) generating an intermittent drive signal if a suspect address is detected; and (e) driving data provided by the memory to an electrical potential in response to the intermittent drive signal.
Claim 49
Dependent Claim
41 words
The method of claim 44, wherein said step (c) comprises: (d) generating a continuous drive signal if a suspect address is detected; and (e) driving data provided by the memory to an electrical potential in response to the continuous drive signal.
Claim 50
Dependent Claim
31 words
The method of claim 45, further comprising the initial steps of reading program data, storing the program data in the memory, and executing the program data as a system initiating program.
Claim 51
Dependent Claim
31 words
The method of claim 46, further comprising the initial steps of reading program data, storing the program data in the memory, and executing the program data as a system initiating program.
Claim 52
Dependent Claim
26 words
The method of claim 47, wherein the program data is read from a communication device which provides the program data for downloading through a communication medium.
Claim 53
Dependent Claim
26 words
The method of claim 48, wherein the program data is read from a communication device which provides the program data for downloading through a communication medium.
Claim 54
Dependent Claim
27 words
The method of claim 47, wherein the program data is read from a communication device which provides the program data for downloading through a cable television network.
Claim 55
Dependent Claim
27 words
The method of claim 48, wherein the program data is read from a communication device which provides the program data for downloading through a cable television network.
Claim 56
Dependent Claim
25 words
The method of claim 47, wherein the program data is read from a communication device which provides the program data for downloading by satellite communication.
Claim 57
Dependent Claim
25 words
The method of claim 48, wherein the program data is read from a communication device which provides the program data for downloading by satellite communication.
Claim 58
Dependent Claim
26 words
The method of claim 47, wherein the program data is read from a communication device which provides the program data for downloading through a telephone network.
Claim 59
Dependent Claim
26 words
The method of claim 48, wherein the program data is read from a communication device which provides the program data for downloading through a telephone network.
Claim 60
Dependent Claim
28 words
The method of claim 45, wherein said step (b) comprises the step of detecting memory access operations caused by activities not occurring during execution of the software program.
Claim 61
Dependent Claim
28 words
The method of claim 46, wherein said step (b) comprises the step of detecting memory access operations caused by activities not occurring during execution of the software program.
Claim 62
Dependent Claim
31 words
The method of claim 45, wherein said step (b) comprises the step of detecting an attempted access of an address that does not correspond with software program data in the memory.
Claim 63
Dependent Claim
31 words
The method of claim 46, wherein said step (b) comprises the step of detecting an attempted access of an address that does not correspond with software program data in the memory.
Claim 64
Dependent Claim
34 words
The method of claim 45, wherein said step (b) comprises the step of detecting an attempted access of a continuous block of addresses that does not correspond with software program data in the memory.
Claim 65
Dependent Claim
34 words
The method of claim 46, wherein said step (b) comprises the step of detecting an attempted access of a continuous block of addresses that does not correspond with software program data in the memory.
Claim 66
Dependent Claim
34 words
The method of claim 45, wherein said step (d) comprises enabling a signal generator to generate the drive signal by asserting a latch output when the attempted access of a suspect address is detected.
Claim 67
Dependent Claim
34 words
The method of claim 46, wherein said step (d') comprises enabling a signal generator to generate the drive signal by asserting a latch output when the attempted access of a suspect address is detected.
Claim 68
Dependent Claim
26 words
The method of claim 45, further comprising the step of generating a reset signal at a system reset to stop the generation of said drive signal.
Claim 69
Dependent Claim
26 words
The method of claim 46, further comprising the step of generating a reset signal at a system reset to stop the generation of said drive signal.
Claim 70
Dependent Claim
14 words
The method of claim 45, wherein said predetermined electrical potential is a ground potential.
Claim 71
Dependent Claim
14 words
The method of claim 46, wherein said predetermined electrical potential is a ground potential.
Claim 72
Dependent Claim
15 words
The method of claim 45, wherein said predetermined electrical potential is a power supply potential.
Claim 73
Dependent Claim
15 words
The method of claim 46, wherein said predetermined electrical potential is a power supply potential.
Claim 74
Independent Claim
95 words
A method for protecting a software program against unauthorized copying, comprising the steps of: (a) monitoring addressing of a memory containing the software program, the memory providing output data that is inconsistent with corresponding input data; (b) detecting the attempted access of a suspect address; (c) generating a select signal when a suspect address is detected; and (d) switching the memory from a normal mode to an erroneous data mode in response to the select signal, the memory providing correct data when in the normal mode and providing erroneous data when in the erroneous mode.
Claim 75
Independent Claim
95 words
A method for protecting a software program against unauthorized copying, comprising the steps of: (a) monitoring addressing of a memory containing the software program, the memory providing output data that is inconsistent with corresponding input data; (b) detecting the attempted access of a suspect address; (c) generating a select signal when a suspect address is detected; and (d) switching the memory from a normal mode to an erroneous data mode in response to the select signal, the memory providing correct data when in the normal mode and providing erroneous data when in the erroneous mode.
Claim 76
Dependent Claim
47 words
The method of claim 71, wherein said step (c) further comprises generating an enable signal when a suspect address is detected and initiating generation of an intermittent select signal in response to the enable signal for switching the memory between the normal mode and the erroneous mode.
Claim 77
Dependent Claim
31 words
The method of claim 71, further comprising the initial steps of reading program data, storing the program data in the memory, and executing the program data as a system initiating program.
Claim 78
Dependent Claim
31 words
The method of claim 72, further comprising the initial steps of reading program data, storing the program data in the memory, and executing the program data as a system initiating program.
Claim 79
Dependent Claim
26 words
The method of claim 73, wherein the program data is read from a communication device which provides the program data for downloading through a communication medium.
Claim 80
Dependent Claim
26 words
The method of claim 74, wherein the program data is read from a communication device which provides the program data for downloading through a communication medium.
Claim 81
Dependent Claim
27 words
The method of claim 73, wherein the program data is read from a communication device which provides the program data for downloading through a cable television network.
Claim 82
Dependent Claim
27 words
The method of claim 74, wherein the program data is read from a communication device which provides the program data for downloading through a cable television network.
Claim 83
Dependent Claim
25 words
The method of claim 73, wherein the program data is read from a communication device which provides the program data for downloading by satellite communication.
Claim 84
Dependent Claim
25 words
The method of claim 74, wherein the program data is read from a communication device which provides the program data for downloading by satellite communication.
Claim 85
Dependent Claim
26 words
The method of claim 73, wherein the program data is read from a communication device which provides the program data for downloading through a telephone network.
Claim 86
Dependent Claim
26 words
The method of claim 74, wherein the program data is read from a communication device which provides the program data for downloading through a telephone network.
Claim 87
Dependent Claim
28 words
The method of claim 71, wherein said step (b) comprises the step of detecting memory access operations caused by activities not occurring during execution of the software program.
Claim 88
Dependent Claim
28 words
The method of claim 72, wherein said step (b) comprises the step of detecting memory access operations caused by activities not occurring during execution of the software program.
Claim 89
Dependent Claim
31 words
The method of claim 71, wherein said step (b) comprises the step of detecting an attempted access of an address that does not correspond with software program data in the memory.
Claim 90
Dependent Claim
31 words
The method of claim 72, wherein said step (b) comprises the step of detecting an attempted access of an address that does not correspond with software program data in the memory.
Claim 91
Dependent Claim
34 words
The method of claim 71, wherein said step (b) comprises the step of detecting an attempted access of a continuous block of addresses that does not correspond with software program data in the memory.
Claim 92
Dependent Claim
34 words
The method of claim 72, wherein said step (b) comprises the step of detecting an attempted access of a continuous block of addresses that does not correspond with software program data in the memory.
Claim 93
Dependent Claim
32 words
The method of claim 71, wherein the step of generating an intermittent select signal comprises the step of asserting a latch output when the attempted access of a suspect address is detected.
Claim 94
Dependent Claim
31 words
The method of claim 72, wherein the step of generating an enable signal comprises the step of asserting a latch output when the attempted access of a suspect address is detected.
Claim 95
Dependent Claim
27 words
The method of claim 71, further comprising the step of generating a reset signal on a system reset to stop the generation of said intermittent select signal.
Claim 96
Dependent Claim
27 words
The method of claim 72, further comprising the step of generating a reset signal on a system reset to stop the generation of the intermittent select signal.
Claim 97
Independent Claim
110 words
A method for protecting software against copying, comprising the steps of: (a) reading program data and storing said program data in a memory providing output data that is inconsistent with corresponding input data, the memory being connected to a system bus, the system bus including an address bus, a data bus, and a control bus; (b) monitoring the system bus; (c) detecting the attempted access of a suspect memory address; (d) generating an intermittent drive signal when a suspect address is detected; and (e) driving data read from the memory to a predetermined electrical potential in response to the intermittent signal, this rendering at least some of said data erroneous.
Claim 98
Independent Claim
110 words
A method for protecting software against copying, comprising the steps of: (a) reading program data and storing said program data in a memory providing output data that is inconsistent with corresponding input data, the memory being connected to a system bus, the system bus including an address bus, a data bus, and a control bus; (b) monitoring the system bus; (c) detecting the attempted access of a suspect memory address; (d) generating an intermittent drive signal when a suspect address is detected; and (e) driving data read from the memory to a predetermined electrical potential in response to the intermittent signal, this rendering at least some of said data erroneous.
Claim 99
Dependent Claim
24 words
The method of claim 93, wherein the program data is stored in the memory and executing the program data as a system initiating program.
Claim 100
Dependent Claim
26 words
The method of claim 93, wherein the program data is read from a communication device which provides the program data for downloading through a communication medium.
Claim 101
Dependent Claim
27 words
The method of claim 93, wherein the program data is read from a communication device which provides the program data for downloading through a cable television network.
Claim 102
Dependent Claim
25 words
The method of claim 93, wherein the program data is read from a communication device which provides the program data for downloading by satellite communication.
Claim 103
Dependent Claim
26 words
The method of claim 93, wherein the program data is read from a communication device which provides the program data for downloading through a telephone network.
Claim 104
Dependent Claim
28 words
The method of claim 93, wherein said step (c) comprises the step of detecting memory access operations caused by activities not occurring during execution of the software program.
Claim 105
Dependent Claim
31 words
The method of claim 93, wherein said step (c) comprises the step of detecting an attempted access of an address that does not correspond with software program data in the memory.
Claim 106
Dependent Claim
34 words
The method of claim 93, wherein said step (c) comprises the step of detecting an attempted access of a continuous block of addresses that does not correspond with software program data in the memory.
Claim 107
Dependent Claim
42 words
The method of claim 93, wherein the step of generating an intermittent drive signal comprises the step of enabling a signal generator to generate the drive signal by asserting a latch output when the attempted access of a suspect address is detected.
Claim 108
Dependent Claim
27 words
The method of claim 93, further comprising the step of generating a reset signal on a system reset to stop the generation of said intermittent drive signal.
Claim 109
Dependent Claim
14 words
The method of claim 93, wherein said predetermined electrical potential is a ground potential.
Claim 110
Dependent Claim
15 words
The method of claim 93, wherein said predetermined electrical potential is a power supply potential.
Claim 111
Independent Claim
109 words
A method for protecting software against copying, comprising the steps of: (a) storing program data in memory providing output data that is inconsistent with corresponding input data, the memory having at least one detection address not accessed during execution of the software, the memory being connected to a system bus, the system bus including an address bus, a data bus, and a control bus; (b) monitoring the system bus; (c) detecting the attempted access of a suspect address; (d) generating an intermittent drive signal when a suspect address is detected; and (e) driving data read from the memory to a predetermined electrical potential in response to the intermittent signal.
Claim 112
Independent Claim
109 words
A method for protecting software against copying, comprising the steps of: (a) storing program data in memory providing output data that is inconsistent with corresponding input data, the memory having at least one detection address not accessed during execution of the software, the memory being connected to a system bus, the system bus including an address bus, a data bus, and a control bus; (b) monitoring the system bus; (c) detecting the attempted access of a suspect address; (d) generating an intermittent drive signal when a suspect address is detected; and (e) driving data read from the memory to a predetermined electrical potential in response to the intermittent signal.
Claim 113
Dependent Claim
19 words
The method of claim 106, wherein the program data is stored in the memory as a system initiating program.
Claim 114
Dependent Claim
26 words
The method of claim 106, wherein the program data is read from a communication device which provides the program data for downloading through a communication medium.
Claim 115
Dependent Claim
27 words
The method of claim 106, wherein the program data is read from a communication device which provides the program data for downloading through a cable television network.
Claim 116
Dependent Claim
25 words
The method of claim 106, wherein the program data is read from a communication device which provides the program data for downloading by satellite communication.
Claim 117
Dependent Claim
26 words
The method of claim 106, wherein the program data is read from a communication device which provides the program data for downloading through a telephone network.
Claim 118
Dependent Claim
28 words
The method of claim 106, wherein said step (c) comprises the step of detecting memory access operations caused by activities not occurring during execution of the software program.
Claim 119
Dependent Claim
31 words
The method of claim 106, wherein said step (c) comprises the step of detecting an attempted access of an address that does not correspond with software program data in the memory.
Claim 120
Dependent Claim
34 words
The method of claim 106, wherein said step (c) comprises the step of detecting an attempted access of a continuous block of addresses that does not correspond with software program data in the memory.
Claim 121
Dependent Claim
42 words
The method of claim 106, wherein the step of generating an intermittent drive signal comprises the step of enabling a signal generator to generate the drive signal by asserting a latch output when the attempted access of a suspect address is detected.
Claim 122
Dependent Claim
27 words
The method of claim 106, further comprising the step of generating a reset signal on a system reset to stop the generation of said intermittent drive signal.
Claim 123
Dependent Claim
14 words
The method of claim 106, wherein said predetermined electrical potential is a ground potential.
Claim 124
Dependent Claim
15 words
The method of claim 106, wherein said predetermined electrical potential is a power supply potential.
Claim 125
Independent Claim
217 words
A method of software protection utilizing a read-write memory device having inconsistent input and output data, said method is suitable for protection of software programs transmitted unidirectionally from a software distribution end to a user end against illegal pirating via illegal reading, said method comprising the steps of: (a) providing an encryption procedure for encrypting a software program at said distribution end; (b) providing a transmission procedure for distributing said encrypted software program from said distribution end to said user end via a communication media; (c) providing a receiving procedure for receiving said encrypted software program at said user end; (d) providing a decryption procedure for decrypting said received software program and writing said decrypted software program into a read-write memory device having inconsistent input and output data; (e) providing an emulator detection procedure for detecting the presence of said microprocessor emulator that is attempting to access said software program stored in said read-write memory device having inconsistent input and output data; (f) providing an erroneous data reading mode for rendering the data accessed by said microprocessor emulator erroneous when said detection procedure determines there has been the emulator attempting to access said software program data; thus rendering at least some of the data accessed by said microprocessor emulator erroneous thereby achieving protection of said software program.
Claim 126
Independent Claim
217 words
A method of software protection utilizing a read-write memory device having inconsistent input and output data, said method is suitable for protection of software programs transmitted unidirectionally from a software distribution end to a user end against illegal pirating via illegal reading, said method comprising the steps of: (a) providing an encryption procedure for encrypting a software program at said distribution end; (b) providing a transmission procedure for distributing said encrypted software program from said distribution end to said user end via a communication media; (c) providing a receiving procedure for receiving said encrypted software program at said user end; (d) providing a decryption procedure for decrypting said received software program and writing said decrypted software program into a read-write memory device having inconsistent input and output data; (e) providing an emulator detection procedure for detecting the presence of said microprocessor emulator that is attempting to access said software program stored in said read-write memory device having inconsistent input and output data; (f) providing an erroneous data reading mode for rendering the data accessed by said microprocessor emulator erroneous when said detection procedure determines there has been the emulator attempting to access said software program data; thus rendering at least some of the data accessed by said microprocessor emulator erroneous thereby achieving protection of said software program.
Claim 127
Dependent Claim
18 words
The method of claim 119, wherein said step (a) includes applying hardware encryption techniques to the software program.
Claim 128
Dependent Claim
18 words
The method of claim 119, wherein said step (a) includes applying software encryption techniques to the software program.
Claim 129
Dependent Claim
26 words
The method of claim 119, wherein said step (a) includes applying a data write conversion process and a data read conversion process to the software program.
Claim 130
Dependent Claim
20 words
The method of claim 119, wherein said step (a) includes applying a data read conversion process to the software program.
Claim 131
Dependent Claim
40 words
The method of claim 119, wherein said step (d) comprises writing the software program in a memory and said step (e) comprises the step of detecting memory access operations caused by activities not occurring during execution of the software program.
Claim 132
Dependent Claim
43 words
The method of claim 119, wherein said step (d) comprises writing the software program in a memory and said step (e) comprises the step of detecting an attempted access of an address that does not correspond with software program data in the memory.
Claim 133
Dependent Claim
46 words
The method of claim 119, wherein said step (d) comprises writing the software program in a memory and said step (e) comprises the step of detecting an attempted access of a continuous block of addresses that does not correspond with software program data in the memory.
Claim 134
Dependent Claim
24 words
The method of claim 119, wherein said step (f) comprises converting program data to erroneous data during a read operation performed on the memory.
Claim 135
Dependent Claim
20 words
The method of claim 119, wherein said step (f) comprises interfering with a system bus to render accessed data erroneous.