GB2238408A - Copy protection in storage system - Google Patents

Copy protection in storage system Download PDF

Info

Publication number
GB2238408A
GB2238408A GB8925003A GB8925003A GB2238408A GB 2238408 A GB2238408 A GB 2238408A GB 8925003 A GB8925003 A GB 8925003A GB 8925003 A GB8925003 A GB 8925003A GB 2238408 A GB2238408 A GB 2238408A
Authority
GB
United Kingdom
Prior art keywords
copying
memory device
control routine
software
format
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB8925003A
Other versions
GB8925003D0 (en
Inventor
Brian Thomas Keegan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LANSTRASE Ltd
Original Assignee
LANSTRASE Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LANSTRASE Ltd filed Critical LANSTRASE Ltd
Publication of GB8925003D0 publication Critical patent/GB8925003D0/en
Publication of GB2238408A publication Critical patent/GB2238408A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

A storage system is disclosed which includes a source memory device 1 for storage of protected software and an install circuit 10 for directing copying of the protected software to a target computer. The install circuit limits the number of copies which may be made by modifying a tag expression stored with the protected software whenever the protected software is copied. Further, the protected software includes a dummy routine 7 which is called when a user attempts to call the executable software. The dummy routine checks that the executable software has been copied to the target computer in a correct manner before allowing use of the executable software. <IMAGE>

Description

A storage system having copy protPrf ionprot[NR][NR]ti@n The present invention relates to a storage system incorporating copy protection to prevent unauthorised copying of stored software.
At present, there are many systems available for storage of software and for prevention of unauthorised copying of the software. Generally speaking, however, these systems involve interruption of normal operation of the software, resulting in lower processing speeds and a requirement for additional memory capacity. For example, European Patent Specification No. 175,557 (Fifield) describes a system including a device for storage of portion of the software, which portion is essential for running of the software and which may not be copied. Accordingly, in use, instructions are transmitted between the processor handling the software and the storage device. As a result, it appears that operation of the processor would be slowed down and that there would be a greater chance of faults occurring due to increased handling of instructions and data.
The present invention is directed towards providing a storage system for storage of protected software and which prevents unauthorised copying of the software.
According to the invention, there is provided a storage system for storage of protected software and prevention of excessive copying of the protected software to a target computer having a hard disc and a random access memory device, the storage system comprising: a source memory device for storage of the protected software in compressed format and of a control routine including a tag expression; and an install circuit for directing copying of the protected software from the source memory device to the hard disc, the install circuit including: means for checking if the control routine is stored on the source memory device; a comparator for comparing the tag expression format with a pre-defined reference tag expression format; stop means for preventing copying of the protected software if the control routine is not stored on the source memory device, or if the tag expression format differs in a pre defined disallowed manner from the reference format; means for amending the tag expression format if said format differs from the reference format in a pre-defined correct manner or is the same as the reference format; means for copying the control routine including the amended tag expression to the hard disc; means for de-compressing and changing the name of the protected seftware after copying of the control routine to the hard disc; means for copying the de-compressed protected software to the hard disc; means for comparing the control routine and the protected software stored in the hard disc with that stored in the source memory device for copying verification; and display means for displaying a verification message indicating copying success or failure. Ideally, the tag expression is stored in a series of dummy expressions to create difficulty in unauthorised addressing of the tag expression.
In one embodiment, the protected software includes executable software and a dummy routine having a name understood by a user to be the name of the executable software, the dummy routine comprising: means for checking for storage of the control routine on the hard disc when a user calls the executable software in order to ascertain if the executable software has been copied in an authorized manner; means for copying the executable software to the random access memory device to allow running of the executable software on the target computer if the control routine is stored on the hard disc; and display means for displaying a verification message on the target computer as to whether the executable software has been copied successfully.
In another embodiment, the install circuit is a hardware circuit arranged to be connected to the target computer for interception of signals transmitted from a processor of the target computer to the source memory device. Alternatively, the source memory device is a memory disc and the install circuit is in the form of a routine stored on the source memory device.
According to another aspect of the invention, there is provided a method of controlling copying of protected software stored in compressed format on a source memory device to a hard disc of a target computer, the method comprising the steps of: storing a control routine on the source memory device, the control routine including a tag expression; checking that the control routine is stored on the source memory device when an attempt is made to copy the protected software; comparing the tag expression format with a pre defined reference tag expression format; preventing copying of the protected software if the control routine is not stored on the source memory device or if the tag expression format differs in a pre-defined disallowed manner from the reference format;; amending the tag expression format if said format differs from the reference format in a pre-defined correct manner or is the same as the reference format; copying the control routine to the hard disc; de-compressing and changing the name of the protected software after copying of the control routine to the hard disc; copying the de-compressed protected software to the hard disc; comparing the control routine and the protected software stored in the hard disc with that stored in the source memory device; and displaying a verification message indicating copying success or failure.
The invention will be more clearly understood from the following description of some preferred embodiments thereof given by way of example only with reference to the accompanying drawings in which: Fig. 1 is a block diagram illustrating a storage system of the invention connected to a target computer; Fig. 2 is a flow diagram illustrating operation of the storage system of the invention; and Fig. 3 is a flow diagram illustrating the manner of running software on the target computer when copied from the storage system.
Referring to the drawings, and initially to Fig. 1, there is illustrated a storage system according to the invention indicated generally by the reference numeral 1. The storage system 1 is connected to a target computer 2 having a processor 3, a Random Access Memory device (RAM) 4 and a hard disc 5. The storage system 1 comprises a source memory device, namely, a floppy disc 6 for insertion in the target computer 2. The disc 6 stores protected software comprising a dummy routine 7 and executable software 8, the latter of which is the required software for the target computer 2. The disc 6 also stores a control routine 9. The storage system 1 further comprises an install circuit 10 for directing and controlling copying of the protected software from the disc 6 to the target computer 2.The install circuit 10 is inserted in the target computer 2 intercepting the connection of the processor 3 to discs inserted in the computer.
Referring now to Fig. 2, operation of the storage system 1 is illustrated. When the disc 6 is inserted in the target computer 2 and has been called by the target computer 2, the install circuit 10 in step 21 checks for the existence of the control routine 9 on the disc 6. The install circuit 10 in step 22 then further compares the format of a tag expression stored within the control routine with a pre-defined reference tag expression format. The tag expression is located amongst a series of dummy expressions and has a secret, pre-determined format. If the control routine 9 or the tag expression are missing or if the tag expression format is not the same as the reference format, the install circuit 10 in step 23 prevents copying of the protected software to the target computer hard disc 5 as, in this embodiment, the system 1 allows only one copy to be made.An error display message is then displayed on the target computer in step 24.
If, however, the control routine 9 and the tag expression exist and further, if the tag expression format is the same as the reference format, the install circuit 10 amends the tag expression format in step 25 and subsequently then directs the writing of the contents of the control routine 9 to the hard disc 5 in step 26. The install circuit 10 then addresses the executable software 8 (which is stored with a secret name and in compressed form) and de-compresses the executable software 8, renames it using a further secret code name and copies it, still in its hidden format to the hard disc 5 (steps 27 and 28). The install circuit 10 then addresses the dummy routine 7, which as it were "sits on top" of the executable software 8 in the disc 6. The dummy routine 7 is copied to the hard disc 5 in step 29.
The last function of the install circuit 10 is to verify that the control routine 9, the dummy routine 7 and the executable software 8 have been written correctly to the hard disc 5 step 30). If this is the case, the install circuit 10 displays an acknowledgement message confirming this on the target computer's screen in step 31. If, however, the verification step 30 shows any discrepancies, an error message is displayed on the target computer's screen. The various messages displayed by the install circuit are standard error messages and do not indicate how the system may have failed and are not indicative in any way of the procedure being carried out.
Referring now to Fig. 3, operation of the protected software when copied to the hard disc 5 is illustrated. The dummy routine 7 has a name which a user would consider would be the name of the executable software 8 and further, the dummy routine 7 has a dummy format similar to a format which the executable software should take. When a user invokes the executable software 8, it is in fact the dummy routine 7 which is loaded to the RAM 4 (steps 40 and 41). In step 42 the dummy routine 7 checks if the control routine 6 is stored on the hard disc 5. Further, the dummy routine 7 compares the tag expression format with the reference format to verify that it has been modified in a correct manner by the install circuit 10 on copying to the hard disc 5.If the control routine 9 is not stored on the hard disc or if the tag expression has not been amended in a valid manner, an error message is displayed in step 44. The dummy routine 7 will then direct the loading of the executable software 8 from the hard disc 5 to the RAM 4 in step 45. Finally, the dummy routine 7 is copied from the RAM 4 to the hard disc 5.
In this embodiment, once the tag expression has been modified it is not possible for the install circuit 10 to copy the control routine 9 again. The only way of circumventing this is to reset the tag expression to its original value. As the existence of the control routine 9 is concealed from the user and is written using standard encryption techniques, it would be almost impossible for a user to successfully tamper with it's operation even if he or she could manipulate the control routine. The fact that the tag expression is indistinguishable from dummy character strings written in the control routine 9, and that it has as many as fifty characters, means that there are millions of permutations which render it extremely difficult for the tag expression to be reset correctly.
As with the control routine 9, the executable software 8 is concealed from the user and is given an encrypted code name.
Further, the executable software 8 is compressed when stored on the disc 6. The advantages of compressing the executable software 8 are that is takes up less space on the disc 6 and that it is impossible to invoke the executable software 8 when it is compressed. Further, if a user gains unauthorised access to the executable software 8, it is very unlikely that it will be recognised for what it is.
It will be noted that at no stage is anything on the disc 6 erased, with the exception of the amendment of the tag expression in the control routine 9. It will be appreciated that no action taken by the storage system 1 has any effect on the normal working of the target computer, for example on processing speed and accordingly the procedure is not destructive or damaging in any way. The invention has the technical effect of controlling the target computer when copying from a source memory device without reducing processing speed or requiring additional random access memory capacity.
The invention may be provided in the form of a disc storing the control routine, the protected software, the control routine and also an install routine which carries out a function similar to that of the install circuit 10.
In the embodiments described, the system of the invention allows only one copy to be made. It will be appreciated, however, that the install circuit may be modified to allow copying a pre-set number of times by changing the manner in which the tag expression is checked and amended.

Claims (8)

1. A storage system for storage of protected software and prevention of excessive copying of the protected software to a target computer having a. hard disc and a random access memory device, the software storage system comprising a source memory device for storage of the protected software in compressed format and of a control routine including a tag expression; and an install circuit for directing copying of the protected software from the source memory device to the hard disc, the install circuit including: means for checking if the control routine is stored on the source memory device; a comparator for comparing the tag expression format with a pre-defined reference tag expression format; stop means for preventing copying of the protected software if the control routine is not stored on the source memory device, or if the tag expression format differs in a pre defined disallowed manner from the reference format; means for amending the tag expression format if said format differs from the reference format in a pre-defined correct manner or is the same as the reference format; means for copying the control routine including the amended tag expression to the hard disc; means for de-compressing and changing the name of the protected software after copying of the control routine to the hard disc; means for copying the de-compressed protected software to the hard disc; means for comparing the control routine and the protected software stored in the hard disc with that stored in the source memory device for copying verification; and display means for displaying a verification message indicating copying success or failure.
2. A storage system as claimed in claim 1, wherein the tag expression is stored in a series of dummy expressions to create difficulty in unauthorised addressing of the tag expression.
3. A storage system as claimed in claims 1 or 2, wherein the protected software includes executable software and a dummy routine having a name understood by a user to be the name of the executable software, the dummy routine comprising: means for checking for storage of the control routine on the hard disc when a user calls the executable software in order to ascertain if the executable software has been copied in an authorized manner; means for copying the executable software to the random access memory device to allow running of the executable software on the target computer if the control routine is stored on the hard disc; and display means for displaying a verification message on the target computer as to whether the executable software has been copied successfully.
4. A storage system as claimed in any preceding claims wherein the install circuit is a hardware circuit arranged to be connected to the target computer for interception of signals transmitted from a processor of the target computer to the source memory device.
5. A storage system as claimed in any of claims 1 to 4, wherein the source memory device is a memory disc and the install circuit is in the form of a routine stored on the source memory device.
6. A method of controlling copying of protected software stored in compressed formation a source memory device to a hard disc of a target computer, the method comprising the steps of: storing a control routine on the source memory device, the control routine including a tag expression; checking that the control routine is stored on the source memory device when an attempt is made to copy the protected software; comparing the tag expression format with a predefined reference tag expression format; preventing copying of the protected software if the control routine is not stored on the source memory device or if the tag expression format differs in a pre-defined disallowed manner from the reference format; amending the tag expression format if said format differs from the reference format in a predefined correct manner or is the same as the reference format; ; copying the control routine to the hard disc; de-compressing and changing the name of the protected software after copying of the control routine to the hard disc; copying the de-compressed protected software to the hard disc; comparing the control routine and the protected software stored in the hard disc with that stored in the source memory device; and displaying a verification message indicating copying success or failure.
7. A storage system substantially as herein described with reference to the accompanying drawings.
8. A method of controlling copying of protected software, the method being substantially as herein described with reference to the accompanying drawings.
GB8925003A 1989-11-27 1989-11-06 Copy protection in storage system Withdrawn GB2238408A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BE8901264A BE1001665A6 (en) 1989-11-27 1989-11-27 SYSTEM FOR STORING PROTECTED SOFTWARE AND METHOD FOR ORDERING A COPY THEREOF.

Publications (2)

Publication Number Publication Date
GB8925003D0 GB8925003D0 (en) 1989-12-28
GB2238408A true GB2238408A (en) 1991-05-29

Family

ID=3884407

Family Applications (1)

Application Number Title Priority Date Filing Date
GB8925003A Withdrawn GB2238408A (en) 1989-11-27 1989-11-06 Copy protection in storage system

Country Status (2)

Country Link
BE (1) BE1001665A6 (en)
GB (1) GB2238408A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4239865A1 (en) * 1992-11-27 1994-06-01 Heinz Johann Unauthorised program use prevention method - inserting installation chip card data carrier into test appts. before starting, interrogating card to check program addresses, and interrupting program with incorrect answer
WO1996024893A1 (en) * 1995-02-06 1996-08-15 Infosafe Systems, Inc. Method for retrieving secure information from a database
EP0881561A2 (en) * 1992-11-13 1998-12-02 Hewlett-Packard Company Encrypting software programs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175557A1 (en) * 1984-09-20 1986-03-26 Kenneth John Fifield Processing device and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175557A1 (en) * 1984-09-20 1986-03-26 Kenneth John Fifield Processing device and method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0881561A2 (en) * 1992-11-13 1998-12-02 Hewlett-Packard Company Encrypting software programs
EP0881561A3 (en) * 1992-11-13 1999-02-24 Hewlett-Packard Company Encrypting software programs
EP0598587B1 (en) * 1992-11-13 1999-08-25 Hewlett-Packard Company Verifying software programs
DE4239865A1 (en) * 1992-11-27 1994-06-01 Heinz Johann Unauthorised program use prevention method - inserting installation chip card data carrier into test appts. before starting, interrogating card to check program addresses, and interrupting program with incorrect answer
WO1996024893A1 (en) * 1995-02-06 1996-08-15 Infosafe Systems, Inc. Method for retrieving secure information from a database

Also Published As

Publication number Publication date
GB8925003D0 (en) 1989-12-28
BE1001665A6 (en) 1990-01-30

Similar Documents

Publication Publication Date Title
US6006328A (en) Computer software authentication, protection, and security system
US6618735B1 (en) System and method for protecting shared system files
US6874139B2 (en) Method and system for seamless integration of preprocessing and postprocessing functions with an existing application program
US6922693B1 (en) Method and system for copy protection of images displayed on a computer monitor
US5475839A (en) Method and structure for securing access to a computer system
US5287407A (en) Computer software protection
KR100417443B1 (en) System and method for protecting use of dynamically linked execution modules
US6052780A (en) Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
USRE40702E1 (en) Method for securing video images
US20050149486A1 (en) Method and system for maintaining secure data input and output
WO1997024665A1 (en) Method for protecting executable software programs against infection by software viruses
US7607122B2 (en) Post build process to record stack and call tree information
WO1997004394A1 (en) Computer software authentication, protection, and security system
JP2001216161A (en) Memory device, stack protection system, computer system, compiler, stack protecting method, storage medium and program transmitter
US20020144141A1 (en) Countering buffer overrun security vulnerabilities in a CPU
MX2007011026A (en) System and method for foreign code detection.
JPH10312335A (en) Data processing method and processor therefor
CN1496503A (en) Method and apparatus to improve protection of information presented by computer
US20070101131A1 (en) Trusted store tamper detection
US20050149750A1 (en) Method and system for diagnosing operation of tamper-resistant software
GB2238408A (en) Copy protection in storage system
US20080275917A1 (en) Itso Fvc2 Application Monitor
IE893523A1 (en) A Storage System having copy protection
EP1402334B1 (en) Method and system for maintaining secure data input and output
AU725098B2 (en) Computer software authentication, protection, and security system

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)