[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

EP1093604A1 - Bait software - Google Patents

Bait software

Info

Publication number
EP1093604A1
EP1093604A1 EP99957100A EP99957100A EP1093604A1 EP 1093604 A1 EP1093604 A1 EP 1093604A1 EP 99957100 A EP99957100 A EP 99957100A EP 99957100 A EP99957100 A EP 99957100A EP 1093604 A1 EP1093604 A1 EP 1093604A1
Authority
EP
European Patent Office
Prior art keywords
software
developer
user
date
version
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
EP99957100A
Other languages
German (de)
French (fr)
Inventor
Babak Ahmadi
Carl P. Wimmer
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of EP1093604A1 publication Critical patent/EP1093604A1/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/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Definitions

  • the present invention relates to software piracy. More specifically, the present invention relates to a method for the restriction or prevention of software piracy.
  • This invention enables the software developer to restrict or prevent
  • Piracy must be prevented in an absolute manner since the release out of the hands of the developer of even one unprotected copy, permits endless copying and distribution by hackers, infringers and pirates.
  • Trial Ware products such as TimeLock
  • TimeLock Trigger Ware products
  • an application developer to distribute a demo or trial version of his software which "expires" on the user's computer after a set number of accesses or a set period of time. The problem occurs after the user has paid a fee and "unlocked" the software so that it becomes fully functional.
  • the software can be distributed to infringers by copying the installed program.
  • the Warez sites on the Internet are places where unprotected copies of many products can be downloaded.
  • the "Hacking" of the protection features of TrialWare products is a game for certain people and status in that forum is gained by the number and complexity of protected programs which have been hacked and re-released as "freeware" .
  • Baitware works by including multiple levels of protection.
  • MIV Machine Identifier Value
  • the RID server Upon registration, the RID server now has the contact information required to ensure that only one copy of each valid and paid RID is installed, preventing multiple installation of a single copy D
  • the RID server now has a complete list of each valid user, to whom will be sent, from time to time, special codes to unlock or deactivate the buried features, which are the fallback defense of Baitware should the front end defenses ever fail.
  • fallback defenses are not known to the users in advance and may include multiple, cascading drop dead dates which freeze the application further use and invite the infringer to contact customer . service for registration. Drastic action such as overwriting portions of the EXE in some random fashion which would totally disable further use, are also possible.
  • the RID server can be set to receive information sent at discrete intervals by any installed application, whether valid or not. The transmission of this information would be invisible to the user and would inform the RID server that infringement has taken place, and give the email address of the infringer. What this application discloses and teaches is a safe method for the developer to supply an antidote to the legal users while preventing infringers from taking that antidote under any circumstances.
  • the present invention relates to the restriction or prevention of software piracy.
  • a method and means of preventing software piracy comprising the steps of: a.)Treating the software to use the Burnin process, wherein Burnin performs the initialization steps of: i.)Calculating a trial period (T (x) ) from first execution, after which the program becomes expired, whereby expired programs are disabled via
  • D (d) D (x) + T (d) , where T (d) is a time period of at least 3 times the time period T (u) iii. dynamically generating an MIV value using the current computer software and hardware configurations, iv. prompting the user for user information and the developer supplied RID, where the set of user information is specified by the software developer, v.)Recording all data from steps i-iv in random and developer-specified locations in the executable file for the software, vi.)Recording all data from steps i-iv in random and developer- specified locations within the current system-configuration-definition or registry, b.
  • FIGURE 1 shows an embodiment of arm aspect of the present invention.
  • This figure shows a computer 100, and the Baitware software 104, acting on any number of software applications 102, within the computer.
  • FIGURE 2 shows an aspect of th present invention indicating the basic components of the system described hererin.
  • FIGURE 3 shows another aspect of the present invention, and indicates the Lockdef record.
  • FIGURE 4 shows another aspect of the present invention, and indicates the Program Control Block (PCB), Registry Control Record (RCR), Time Lock Type (TLT) constants for LockDef.type, and Time Lock Action (TLA) constants for LockDef. action.
  • PCB Program Control Block
  • RCR Registry Control Record
  • TLT Time Lock Type
  • TLA Time Lock Action
  • FIGURE 5 shows another aspect of the present invention, and indicates the data elements duplicated in the PCB and RCR.
  • FIGURE 6 shows another aspect of the present invention, and indicates the assocaitions of each program file in the system of the present invention.
  • FIGURE 7 shows another aspect of the present invention, and indicates the rquired Baitware development.
  • FIGURE 8 shows another aspect of the present invention, and indicates the setup of the Burlin module.
  • FIGURE 9 shows another aspect of the present invention, and indicates the functions carried out by Burnlin.
  • FIGURE 10 shows another aspect of the present invention, and indicates fall back defenses as described hererin.
  • FIGURE 11 shows another aspect of the present invention, and indicates the errors which may occur in the Baitware system.
  • FIGURE 12 shows another aspect of the present invention, and indicates the steps for Baitware operation with softwarre downloaded from the Internet.
  • the present invention relates to software piracy. More specifically, the present invention relates to a method for the restriction or prevention of software piracy.
  • the first step is to bind the application directly to the machine.
  • the first step is to mate a software program irrevocably to a specific machine, under the Burnin system, the user inputs certain personal data as well as corporate data into a form at the first install. This information together certain configuration of the users machine creates a Machine Identifier Value (MIV) .
  • MIV Machine Identifier Value
  • Burnin furthers the process by "branding" this information directly into the executable of the program at the first installation.
  • the information which has been burned into the program is encrypted and randomly placed in the .EXE, the end user or any hacker should not be able to find, let alone alter the inserted information.
  • the program will run out and test that the machine on which it is installed is the one which has the unique (and not user definable) identifier. If the response is correct, the application will run, if not, then not.
  • the specific copy of the application which has been installed is now fixed to a known system, The RID server will prevent further installation of that same identified copy to another machine. Should the user break through the defenses that prevent the copying of an already installed application or the installation of a copy without final authorization from the RID server, the fall back defenses will be required to come into play. At some point, the developer releases an upgrade. This can be either on-line
  • CD-ROM (freely downloadable) or on a CD-ROM.
  • CD-ROM or download will be a list of Legal Users Names and Legal MIVs.
  • the CD-ROM will check the acmal MIV of the machine and regardless of whether the application being upgraded is legal or not, it will accomplish the upgrades without disruption. But only in the case of a legal copy (which is verified at upgrade time by searching for and verifying the MIV) will the fall back defences such as a secret drop-dead date be disabled.
  • This method causes every user (legal and otherwise) to swallow and ingest an application that has been baitwared, in effect, the user has swallowed a time bomb, which he cannot discover and cannot eliminate. Only the developer can eliminate or nullify the fallback defenses, by offer the antidote to the Baitware poison.
  • a crucial feature of this system is the delay before the fall back defenses activate. This time is developer specified and will depend on his preferences and knowledge of his own customer base. The central feature of this delay is that potential infringers will create data which is formatted for that particular application. A developer may wish to wait a long time before allowing the fall back defences to activate, thereby trapping infringer files and data which cannot be used without registering and paying for the application. IN certain cases, no such data is created and the developer may prefer a much shorter time before the fall back defences activate.
  • FIG. 1 is a diagram showing a computer 100, and the Baitware software 104, acting on any number of software applications 102, within the computer.
  • a BaitwareLib.DLL file 200 is a compiled run time library containing a PCB, an RCR, and an instance of the
  • Baitware class which contains Baitware instructions.
  • An application executable file
  • the Lockdef record shown in Figure 3, contains run time information, together with persistent data (preserved from one execution to the next).
  • the top portion gives the set of input data, required during installation of an application.
  • the next portions can be viewed as input or output, depending on the process involved.
  • Lockdef forms the basis for most other records used in Baitware.
  • PCB 400 contains the set of data elements indicated in Figure 3.
  • the Registry Control Record (RCR) 402 contains the indicated elements from LockDef 300, as well as an offset into the starting location of a PCB in the application executable file 202. Constants
  • the different types for a LockDef occurrence are each represented by a different constant 404.
  • the different types of LockDef actions are also each represented by a different constant 406. Note that these constants are mutually inclusive and are therefore implemented as bit-flag values.
  • Figure.5 shows a table showing which data elements are duplicated in both the PCB and the RCR. This table also shows the purpose of each data member in each of the PCB and the RCR. The following notes apply to the superscripted numbers in Figure.5
  • RCR also contains additional members as shown in Figure.1
  • Program File. Registry, and Record Associations Figure 6 is a table showing the associations of each program file in the Baitware system with registry keys as well as with the PCB and RCR records.
  • " ⁇ app > ⁇ ver> .exe” is a self expanding archive with Baitware supporting code which immediately calls “semp.exe” after expansion is complete
  • "setup.exe” is a developer-generated setup program with Baitware supporting code which initially deletes the " ⁇ app > ⁇ ver> .exe” file, then after installation is complete, it immediately activates the "app.exe” executable file
  • “app.exe” is the software application being protected by Baitware which contains Baitware supporting code. The first action of "app.exe” is to delete the file “setup. exe " .p
  • BaitwareLib.DLL 200 is a run-time library as described above; it must be located in a directory area such that the OS can find it (e.g. as part of a search path).
  • BaitwareLib. LIB 700 is linked with an application to provide that application with Baitware supporting code.
  • BaitwareLib. h 702 is a header file; this header must be included in in the application which wants to use BaitwareLib classes and functions.
  • HexBuffer.h 704 is a header file; this header contains the declaration of the hex- key-string which is later burned-in with the PCB . It can be included in one and only one file of the application. p
  • the "Burnin” portion of the Baitware process is a developer tool kit which provides partial piracy protection for any application using a combination of the following information:
  • MIV Machine Indentifier Value
  • EXE-file This is the .EXE file for the application.
  • the data is written in developer defined locations, where each datum may be written at a different location. These locations provide immediate access to encrypted data buffers to any procedure in the application.
  • Bumin-file This is a Burnin-definition file stored in the directory of the application. It contains encrypted data written at developer-defined locations. The rest of the file is filled in with random data.
  • the encrypted data is stored in the current system registry as data-values for developer-defined registry keys (or key-paths).
  • the Burnin process can ensure the validity of the program being executed by the current user on the current computer.
  • the setup of the Burnin module inside the application requires that certain steps be taken by which the application developer inserts and integrates the Burnin module into his application (see Figure 8).
  • Code is created 800 to test for the presence of the Baitware.DLL.
  • Code is created 802 to ensure the HexBuffer.h file is present in at least one .CPP file in the application to be protected.
  • Code is created 802 to properly link and align the applications project settings with the BaitwareLib. LIB file.
  • the BaitwareLib. h file must be included 806 in all .CPP files.
  • a call 808 to the Baitwarelnit.hf) must be inserted in the CXapp: :Initinstance().
  • Code must be written 810 to create the Baitwarelnit(), which module has the components shown in 812.
  • Burnin carries out a series of functions at every time when the application is run ( Figure 9) . These functions verify that the application is being run only on a valid system. Any and all errors result in the termination of the application.
  • VerKey exists in the registry 900. If the HexKey is found, then the registry data is loaded and stored 902 in the RCR. Then the PCB offset in the .EXE file 904 is fetched the RCR. This permits the loading of the PCB data from the .EXE 706. If the RegKey is not found in 900, then an attempt is made to find the PCB in the .EXE file 908.
  • the process proceeds to load the PCB data from the .EXE file and create the PCB 906.
  • the process tests the PCB for validity 912 under two paths A/B. If not valid in either case the result is ErrorOl 914 and the application terminates. Under path A, IsBurnedf) is tested 918 . If unsuccessful, the PCB and RCR are set 930 from the LockDef object values. The PCB is burned into the .EXE files 932. The RegKey is then created in the registry 934 and the values from the RCR are added.
  • the process then tests to see if the RCR matches the PCB 926. If when the process tests for the IsBurned() 918, a remrn of YES results in Error03 920 . Under path B, the process again tests for IsBurnedf) 922. If unsuccessful, Error04 results 924 and the application terminates. If successful, the process matches the RCR with the PCB 926. A result of no gives rise to Error05 928 and the application terminates. A YES result brings the process to the Active Create module 936. A successful result leads to IsExpired() 938 and the End of the process. An unsuccessful result in Active Create also brings us to the end.
  • the fall back defenses can be installed in the .EXE using one or more drop dead dates. These dates are checked from time by the installed application and if reached would cause the application to fail loading (Figure 10).
  • the burned application is initialized 1000. Failure to initialize gives rise to ErrorO ⁇ 1002 and the application terminates.
  • the expiry date is checked 1004 If not expired, the process returns false 1006 and continues to run. If the application has expired then the RegTheUser module is activated 1008 to carry out a predetermined set of actions, which were specified by the developer. If the actions specified permits the application to continue, this is then the case 1010. If the specified actions are to terminate or to connect the user to the RIDSERVER, then the application terminates.
  • Figure 11 is a diagram showing the errors which are most likely to occur in the Baitware system. These error conditions 1100 are referenced throughout the various process diagrams. Each error also has a probable cause 1102; the cause for any one error cannot be determined absolutely. The table 1102 lists the most probable causes. b
  • Baitware works equally well for software downloaded from the Internet.
  • Figure 12 shows the steps in such a process.
  • the user downloads 1200 an executable archive from the Internet.
  • the user executes the downloaded file 1202 to expand and retrieve the files therein.
  • This process involves the creation and validation of a Baitware object 1204, as well as the expansion of all files 1206 in that archive.
  • the user has the option of canceling this process at any time 1222; however, at this point a user cancellation is too late since the Baitware validation process has already occurred.
  • the semp program (extracted from the archive) is automatically executed 1208. Again, this process involves the creation and validation of a Baitware object 1210, but this time the object is created and validated for the semp program.
  • the normal installation steps 1212 are undertaken. Again, the user may terminate the process at any time 1222.
  • a dialog is displayed 1214, informing the user that installation is complete. Once the user presses the OK or CONTINUE button on this dialog, the software application is automatically executed 1216. Now a
  • Baitware object is created and validated for the software application 1218. Finally, the software application can start its normal processing 1220; at this point, the application has been successfully encoded and validated via the Baitware process.
  • p Registration-Identifier RID
  • Burnin presently incorporates user entered data (name and address) plus machine characteristics.
  • the form which Burnin prompts a user is expanded to include a unique Registration Identifier (RID) which will be branded into the product together with the other information.
  • RID Registration Identifier
  • the RID and the MIV can then be used as keys into the developer's customer database, to bind a RID (i.e. a copy of the product) directly to a user (an MIV).
  • the RID can be supplied to the customer in any way, including: adhesive label, printed sheet, and over the phone.
  • the RID is generated by the developer, starting at a base number (e.g. 0) and incrementally dispensed.
  • a RID value is never re -used throughout the life-time of the application; it must remain unique across all copies of all versions of the application.
  • the RIDServer will run as a service on a designated station directly on a LAN (the Top Producer Hub); it will ensure that all executed copies of Top Producer are legitimate versions of the software.
  • a customer with 20 computers on a LAN.
  • the customer will receive a separate sheet, providing 20 different RID values.
  • each station's MIV will be recorded either at installation time, or the first time Top Producer is executed from that station. All of the RID, MIV, and user-supplied data are maintained by the RIDServer in encrypted form, p
  • the RID as used with Burnin allow for the Baitware method of software distribution/anti-piracy. Any means of software distribution can be used for
  • Baitware This ranges from mass-produced floppies and CD-ROMs to the Internet.
  • the steps of the Baitware method are as follows: 1) Using the Burnin process described above, the application in version V ⁇ is released as "TrialWare" on date D (x) ; the application V (x) is Burnlned with the following information: a) a trial period (T (x) ) from first execution, after which the program becomes expired Depending on developer preference, expired programs are disabled via Burnin b) an undisclosed "absolute expiry date” or death-date, D (d) , set for a date which is given by
  • D (d) D (x) + T (d) , where T (d) is a time period of at least 3 times the time period T (u) , as described by point 2) c) a dynamically generated MIV d) user information (prompted for) 2)
  • the Burmn process is augmented or enhanced with a new step to re-cover user-registration data from all installations and/or first executions of the application This step can be implemented m many forms
  • the simplest is to print the registration torm (including all user and dynamically generated data) with a mail-back address, then manually enter all data into a database
  • the ideal way to implement this step is employ the RIDServer and transmit the registration data to it
  • the RIDServer maintains a database of all registered customers of the application
  • the RIDServer performs the following steps
  • T (u) After the release date, D (x) , a free upgrade of the application in version V (x+ 1) is released.
  • T (u) is specified by the developer as the time period required for the product to reach 50% of all illegal users.
  • the upgrade V ( ⁇ + i ) 7 ⁇ l upgrade legal and illegal copies of the application in version V (x) .
  • the application V (x+ 1) will contain patches and responses to user requests.
  • V (x+ 1) contains an encrypted list of all registered RID-MIV pairs, as extracted from the database constructed in step 2) .
  • RIDServer will simply record all the data for later analysis, - depending on developer preference, inform user that he/she is an illegal user of the application, leave the absolute expiry date, D (x) , unchanged,
  • Pirating the upgrade V (x+ 1) does not help either, since the current machine's MIV must match. In fact, the upgrade can perform any action when a non-existing MIV is encountered, including disabling/deleting application data.p
  • Baitware not only allows for mass CD-replication and Internet distribution, but also for a nearly full-proof way of preventing piracy.
  • the primary restatement of the invention is that the developer can influence installed copies of his application remotely.
  • remotely we mean where the developer does not know the physical location and/or ownership of some or all of the installed copies of the application which have been distributed to customers.
  • a secondary restatement is that the developer can discriminate among those who would try to install the upgrades or updates based on feamres in his own customer database such as paid/unpaid, age, geographical location, etc.
  • the developer can custom tailor each upgrade with a variety of approaches. For example : • Upgrade feature A (say the removal of a drop dead date)- paid users only.

Landscapes

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

Abstract

The present invention affords a software developer the ability to influence and/or control a copy of an application after he has lost physical possession of that copy. Baitware enables this through the inclusion of one or more features whose inclusion or removal, whose activation or subsequent deactivation are absolutely denied to the end user. Baitware extends this protection through a multilayer set of requirements, including fixing the copy of the application to one or more specific machines, registering this information at a remote server and subsequently transmitting to valid users only the correct keys to activate or deactivate usage blocking features.

Description

BAIT SOFTWARE
The present invention relates to software piracy. More specifically, the present invention relates to a method for the restriction or prevention of software piracy.
BACKGROUND OF THE INVENTION
The problem of software piracy arises from the nature of software itself, in
that any copy of software is a binary copy, a perfect copy that will run the same as
the original. In fact, the only thing distinguishing two binary copies of any software
is their respective locations in time and space. Therefore the relapse of one
unprotected copy of any program opens up the possibility of an infinite number of
copies being made.
Any user can infringe the copyright of almost any software without any
chance of being noticed or caught as long as his machine is not physically examined
for pirated software.
Software piracy represents an enormous revenue loss for every software
developer, which loss can be a multiple of the actual earned revenue of that
developer. This invention enables the software developer to restrict or prevent
software piracy. Several devices and methods have been introduced over time to limit or constrain software piracy but they all fail in some important and logical manner to absolutely prevent piracy. Piracy must be prevented in an absolute manner since the release out of the hands of the developer of even one unprotected copy, permits endless copying and distribution by hackers, infringers and pirates.
There are many Trial Ware products (such as TimeLock) which allow an application developer to distribute a demo or trial version of his software which "expires" on the user's computer after a set number of accesses or a set period of time. The problem occurs after the user has paid a fee and "unlocked" the software so that it becomes fully functional.
At that point, the software can be distributed to infringers by copying the installed program. There may be changes required to the setup or Registry of the infringers computer to incorporate certain setup or enabling features but a semiskilled hacker can accomplish this. In fact, the Warez sites on the Internet are places where unprotected copies of many products can be downloaded. The "Hacking" of the protection features of TrialWare products is a game for certain people and status in that forum is gained by the number and complexity of protected programs which have been hacked and re-released as "freeware" .
Baitware works by including multiple levels of protection. A At the front end, Baitware employs trialware features (limiting the initial time or the number of initial accesses - to be set by the developer) to encourage the user to register the installation of the application. B Upon registration, the RID (Registration Identifier) server can use the MIV (Machine Identifier Value) of the user to calculate an unlock code which will only unlock that single copy of the application as already installed on the valid (paid) users system.
C Upon registration, the RID server now has the contact information required to ensure that only one copy of each valid and paid RID is installed, preventing multiple installation of a single copy D The RID server now has a complete list of each valid user, to whom will be sent, from time to time, special codes to unlock or deactivate the buried features, which are the fallback defense of Baitware should the front end defenses ever fail.
These fallback defenses are not known to the users in advance and may include multiple, cascading drop dead dates which freeze the application further use and invite the infringer to contact customer . service for registration. Drastic action such as overwriting portions of the EXE in some random fashion which would totally disable further use, are also possible. E If desired, the RID server can be set to receive information sent at discrete intervals by any installed application, whether valid or not. The transmission of this information would be invisible to the user and would inform the RID server that infringement has taken place, and give the email address of the infringer. What this application discloses and teaches is a safe method for the developer to supply an antidote to the legal users while preventing infringers from taking that antidote under any circumstances.
It is an object of the invention to overcome disadvantages of the prior art.
The above object is met by the combination of features of the main claim, the sub-claims disclose further advantageous embodiments of the invention.
SUMMARY OF THE INVENTION
The present invention relates to the restriction or prevention of software piracy.
According to the present invention there is provided a method and means of preventing software piracy comprising the steps of: a.)Treating the software to use the Burnin process, wherein Burnin performs the initialization steps of: i.)Calculating a trial period (T(x)) from first execution, after which the program becomes expired, whereby expired programs are disabled via
Burnin depending on software developer preference, ii.)Assigning an undisclosed "absolute expiry date" or death-date, D(d), set for a date which is given by:
D(d) = D(x) + T(d), where T(d) is a time period of at least 3 times the time period T(u) iii. dynamically generating an MIV value using the current computer software and hardware configurations, iv. prompting the user for user information and the developer supplied RID, where the set of user information is specified by the software developer, v.)Recording all data from steps i-iv in random and developer-specified locations in the executable file for the software, vi.)Recording all data from steps i-iv in random and developer- specified locations within the current system-configuration-definition or registry, b. distributing the Bumlned software in version V(x) as TrialWare on the date D(x) via any and all distribution channels, these channels including: i.)Floppies ii.) CD-ROM iii.) Internet iv.) Intranet v.)Extranet c.)Generating and dispensing a new and unique RID value for each copy of software sold to a user, the RID value being unique across all versions of the software throughout its life-time, d.)Augmenting the Burnin process with a new step to re-cover user- registration data for paid users, including the MIV and RID values, from all installations and/or first-executions of the software, and to further store this data in the Customer Database, e. Constructing a free upgrade of the software in version V(x+ 1) which includes the Customer Database constructed in step d; version V( +1) being able to upgrade legal and illegal copies of the software in version V(x) via the initialization steps of: i.)Searching the Customer Database for a matching MIV-RID pair, ii.)If found, resetting the absolute expiry date, D(x), to Y years from current date, where Y is defined as the life-time of the software in version V(vr l ), iii.)If not found, recording all registration data and dynamically generated data to the central data base of step d, identifying a particular MIV as an illegal, but still upgraded user, f.)Distributing the software in version V(x ) constructed in step-e as a free upgrade within a time period, T(u), after the release date, D(N) where T(u) is specified by the software developer as the time period required for the product to reach 100% of currently legal users, g.)Disabling each copy of the software in version V(x ) on the death date D(d); this process, which is activated the next time the software is run on or after the death date, comprising the steps of: i.)Executing and/or undertaking all additional actions specified by the software developer, ii.)Further disabling the software in version V(x), thereby also disabling any future re-installations of the software in version
V(x„ h.)Contacting all illegal users recorded in the Customer Database on the death date D(d), and communicating all software developer specified information. p This summary of the invention does not necessarily describe all necessary feamres of the invention but that the invention may also reside in a sub- combination of the described feamres.
BRIEF DESCRIPTION OF THE DRAWINGS
These and other feamres of the invention will become more apparent from the following description in which reference is made to the appended drawings wherein: FIGURE 1 shows an embodiment of arm aspect of the present invention. This figure shows a computer 100, and the Baitware software 104, acting on any number of software applications 102, within the computer.
FIGURE 2 shows an aspect of th present invention indicating the basic components of the system described hererin.
FIGURE 3 shows another aspect of the present invention, and indicates the Lockdef record.
FIGURE 4 shows another aspect of the present invention, and indicates the Program Control Block (PCB), Registry Control Record (RCR), Time Lock Type (TLT) constants for LockDef.type, and Time Lock Action (TLA) constants for LockDef. action.
FIGURE 5 shows another aspect of the present invention, and indicates the data elements duplicated in the PCB and RCR. FIGURE 6 shows another aspect of the present invention, and indicates the assocaitions of each program file in the system of the present invention.
FIGURE 7 shows another aspect of the present invention, and indicates the rquired Baitware development. FIGURE 8 shows another aspect of the present invention, and indicates the setup of the Burlin module.
FIGURE 9 shows another aspect of the present invention, and indicates the functions carried out by Burnlin. FIGURE 10 shows another aspect of the present invention, and indicates fall back defenses as described hererin.
FIGURE 11 shows another aspect of the present invention, and indicates the errors which may occur in the Baitware system.
FIGURE 12 shows another aspect of the present invention, and indicates the steps for Baitware operation with softwarre downloaded from the Internet.
DESCRIPTION OF PREFERRED EMBODIMENT
The present invention relates to software piracy. More specifically, the present invention relates to a method for the restriction or prevention of software piracy.
The following description is of a preferred embodiment by way of example only and without limitation to the combination 'of feamres necessary for carrying the invention into effect.
Components & Concepts The Baitware method.
The first step is to bind the application directly to the machine. Using a product such as Burnin, the first step is to mate a software program irrevocably to a specific machine, under the Burnin system, the user inputs certain personal data as well as corporate data into a form at the first install. This information together certain configuration of the users machine creates a Machine Identifier Value (MIV) .
Burnin furthers the process by "branding" this information directly into the executable of the program at the first installation. Once the information which has been burned into the program is encrypted and randomly placed in the .EXE, the end user or any hacker should not be able to find, let alone alter the inserted information. There are alternative for providing machine information. For example, every Intel CPU has a unique identifier that can be used at the first install to create the unique reference point.
At this point, at every activation of the program, the program will run out and test that the machine on which it is installed is the one which has the unique (and not user definable) identifier. If the response is correct, the application will run, if not, then not.
Using commonly available devices (such as telephone, email, fax, on-line) the end user is prompted to remrn the new MIV information together with the rest of the information in the form to the application developer. The developer may require this information as part of the registration process. To increase the difficulty of decrypting the essential Baitware information, blocks of meaningless data can also be included at random locations in the EXE to further increase the difficulty.
The specific copy of the application which has been installed is now fixed to a known system, The RID server will prevent further installation of that same identified copy to another machine. Should the user break through the defenses that prevent the copying of an already installed application or the installation of a copy without final authorization from the RID server, the fall back defenses will be required to come into play. At some point, the developer releases an upgrade. This can be either on-line
(freely downloadable) or on a CD-ROM. On that CD-ROM or download will be a list of Legal Users Names and Legal MIVs. The CD-ROM will check the acmal MIV of the machine and regardless of whether the application being upgraded is legal or not, it will accomplish the upgrades without disruption. But only in the case of a legal copy (which is verified at upgrade time by searching for and verifying the MIV) will the fall back defences such as a secret drop-dead date be disabled.
This method causes every user (legal and otherwise) to swallow and ingest an application that has been baitwared, in effect, the user has swallowed a time bomb, which he cannot discover and cannot eliminate. Only the developer can eliminate or nullify the fallback defenses, by offer the antidote to the Baitware poison.
A crucial feature of this system is the delay before the fall back defenses activate. This time is developer specified and will depend on his preferences and knowledge of his own customer base. The central feature of this delay is that potential infringers will create data which is formatted for that particular application. A developer may wish to wait a long time before allowing the fall back defences to activate, thereby trapping infringer files and data which cannot be used without registering and paying for the application. IN certain cases, no such data is created and the developer may prefer a much shorter time before the fall back defences activate.
Overview Figure 1 is a diagram showing a computer 100, and the Baitware software 104, acting on any number of software applications 102, within the computer.
Figure 2 shows the basic components of the system. A BaitwareLib.DLL file 200 is a compiled run time library containing a PCB, an RCR, and an instance of the
Baitware class which contains Baitware instructions. An application executable file
202 contains any applications code, as well as a PCB instance. The computer registry
204 contains up to three instances of the RCR.
LockDef Record
The Lockdef record, shown in Figure 3, contains run time information, together with persistent data (preserved from one execution to the next). The data types shown as given in Microsoft MFC/C+ + . The top portion gives the set of input data, required during installation of an application. The next portions can be viewed as input or output, depending on the process involved. Lockdef forms the basis for most other records used in Baitware.
Program & Registry Control
With reference to Figure 4, the Program Control Block (PCB) 400 contains the set of data elements indicated in Figure 3. The Registry Control Record (RCR) 402 contains the indicated elements from LockDef 300, as well as an offset into the starting location of a PCB in the application executable file 202. Constants
The different types for a LockDef occurrence are each represented by a different constant 404. Similarly, the different types of LockDef actions are also each represented by a different constant 406. Note that these constants are mutually inclusive and are therefore implemented as bit-flag values.
Member Duplication & Purpose
Figure.5 shows a table showing which data elements are duplicated in both the PCB and the RCR. This table also shows the purpose of each data member in each of the PCB and the RCR. The following notes apply to the superscripted numbers in Figure.5
(1) the RCR also contains additional members as shown in Figure.1
(2) hid is only required when the TLA_HELP action flag is supplied.
(3) url is only required when the TLA_CONNECT action flag is supplied.
Program File. Registry, and Record Associations Figure 6 is a table showing the associations of each program file in the Baitware system with registry keys as well as with the PCB and RCR records. " < app > < ver> .exe" is a self expanding archive with Baitware supporting code which immediately calls "semp.exe" after expansion is complete, "setup.exe" is a developer-generated setup program with Baitware supporting code which initially deletes the " < app > < ver> .exe" file, then after installation is complete, it immediately activates the "app.exe" executable file, "app.exe" is the software application being protected by Baitware which contains Baitware supporting code. The first action of "app.exe" is to delete the file "setup. exe " .p
Common Files for a Baitware Library Figure 7 shows the files required for Baitware development.
BaitwareLib.DLL 200 is a run-time library as described above; it must be located in a directory area such that the OS can find it (e.g. as part of a search path). BaitwareLib. LIB 700 is linked with an application to provide that application with Baitware supporting code. BaitwareLib. h 702 is a header file; this header must be included in in the application which wants to use BaitwareLib classes and functions. HexBuffer.h 704 is a header file; this header contains the declaration of the hex- key-string which is later burned-in with the PCB . It can be included in one and only one file of the application. p
Burnin
The "Burnin" portion of the Baitware process is a developer tool kit which provides partial piracy protection for any application using a combination of the following information:
1) an Expiry time period and/or maximum number of executions. 2) a Machine Indentifier Value (MIV) which is automatically generated from the computer's characteristics.
3) User information; this is prompted for by the Burnin process according to developer-defined parameters. All this information is saved (in encrypted form) in the following storage areas:
EXE-file. This is the .EXE file for the application. The data is written in developer defined locations, where each datum may be written at a different location. These locations provide immediate access to encrypted data buffers to any procedure in the application.
Bumin-file. This is a Burnin-definition file stored in the directory of the application. It contains encrypted data written at developer-defined locations. The rest of the file is filled in with random data.
Registry. The encrypted data is stored in the current system registry as data-values for developer-defined registry keys (or key-paths).
Using this information in the various locations, the Burnin process can ensure the validity of the program being executed by the current user on the current computer.
The setup of the Burnin module inside the application requires that certain steps be taken by which the application developer inserts and integrates the Burnin module into his application (see Figure 8). Code is created 800 to test for the presence of the Baitware.DLL. Code is created 802 to ensure the HexBuffer.h file is present in at least one .CPP file in the application to be protected. Code is created 802 to properly link and align the applications project settings with the BaitwareLib. LIB file. The BaitwareLib. h file must be included 806 in all .CPP files. A call 808 to the Baitwarelnit.hf) must be inserted in the CXapp: :Initinstance(). Code must be written 810 to create the Baitwarelnit(), which module has the components shown in 812.
Once installed on the users system, Burnin carries out a series of functions at every time when the application is run (Figure 9) . These functions verify that the application is being run only on a valid system. Any and all errors result in the termination of the application. At the Start, verification is sought that the RegKey exists in the registry 900. If the HexKey is found, then the registry data is loaded and stored 902 in the RCR. Then the PCB offset in the .EXE file 904 is fetched the RCR. This permits the loading of the PCB data from the .EXE 706. If the RegKey is not found in 900, then an attempt is made to find the PCB in the .EXE file 908. If the HexKey is not found 910, then Error 02 error results 916 and the application terminates. If the HexKey is found 910, then the process proceeds to load the PCB data from the .EXE file and create the PCB 906. The process tests the PCB for validity 912 under two paths A/B. If not valid in either case the result is ErrorOl 914 and the application terminates. Under path A, IsBurnedf) is tested 918 . If unsuccessful, the PCB and RCR are set 930 from the LockDef object values. The PCB is burned into the .EXE files 932. The RegKey is then created in the registry 934 and the values from the RCR are added. The process then tests to see if the RCR matches the PCB 926. If when the process tests for the IsBurned() 918, a remrn of YES results in Error03 920 . Under path B, the process again tests for IsBurnedf) 922. If unsuccessful, Error04 results 924 and the application terminates. If successful, the process matches the RCR with the PCB 926. A result of no gives rise to Error05 928 and the application terminates. A YES result brings the process to the Active Create module 936. A successful result leads to IsExpired() 938 and the End of the process. An unsuccessful result in Active Create also brings us to the end.
At the time of Burnin, the fall back defenses can be installed in the .EXE using one or more drop dead dates. These dates are checked from time by the installed application and if reached would cause the application to fail loading (Figure 10). At the start, the burned application is initialized 1000. Failure to initialize gives rise to ErrorOό 1002 and the application terminates. After successful initialization, the expiry date is checked 1004 If not expired, the process returns false 1006 and continues to run. If the application has expired then the RegTheUser module is activated 1008 to carry out a predetermined set of actions, which were specified by the developer. If the actions specified permits the application to continue, this is then the case 1010. If the specified actions are to terminate or to connect the user to the RIDSERVER, then the application terminates.
Baitware Errors
Figure 11 is a diagram showing the errors which are most likely to occur in the Baitware system. These error conditions 1100 are referenced throughout the various process diagrams. Each error also has a probable cause 1102; the cause for any one error cannot be determined absolutely. The table 1102 lists the most probable causes. b
Download to First Execution
Baitware works equally well for software downloaded from the Internet. Figure 12 shows the steps in such a process. First, the user downloads 1200 an executable archive from the Internet. Next, the user executes the downloaded file 1202 to expand and retrieve the files therein. This process involves the creation and validation of a Baitware object 1204, as well as the expansion of all files 1206 in that archive. The user has the option of canceling this process at any time 1222; however, at this point a user cancellation is too late since the Baitware validation process has already occurred. Next, the semp program (extracted from the archive) is automatically executed 1208. Again, this process involves the creation and validation of a Baitware object 1210, but this time the object is created and validated for the semp program. Once validated, the normal installation steps 1212 are undertaken. Again, the user may terminate the process at any time 1222. Upon the completion of the installation a dialog is displayed 1214, informing the user that installation is complete. Once the user presses the OK or CONTINUE button on this dialog, the software application is automatically executed 1216. Now a
Baitware object is created and validated for the software application 1218. Finally, the software application can start its normal processing 1220; at this point, the application has been successfully encoded and validated via the Baitware process. p Registration-Identifier (RID)
Burnin presently incorporates user entered data (name and address) plus machine characteristics. The form which Burnin prompts a user is expanded to include a unique Registration Identifier (RID) which will be branded into the product together with the other information. The RID and the MIV can then be used as keys into the developer's customer database, to bind a RID (i.e. a copy of the product) directly to a user (an MIV).
The RID can be supplied to the customer in any way, including: adhesive label, printed sheet, and over the phone.
The RID is generated by the developer, starting at a base number (e.g. 0) and incrementally dispensed. A RID value is never re -used throughout the life-time of the application; it must remain unique across all copies of all versions of the application.
The RID Server
This solution envisions adding the RIDServer module to Burnin. The RIDServer will run as a service on a designated station directly on a LAN (the Top Producer Hub); it will ensure that all executed copies of Top Producer are legitimate versions of the software. Consider a customer with 20 computers on a LAN. The customer will receive a separate sheet, providing 20 different RID values. Now each station's MIV will be recorded either at installation time, or the first time Top Producer is executed from that station. All of the RID, MIV, and user-supplied data are maintained by the RIDServer in encrypted form, p
Further, there is no central file or directory where all of the information is stored. Since the RIDServer will approve program access 'only for authorized computers (correct RID and correct MIV), the client is assured that as long as he does not give out the software, no one can access his private client information. Note that while the RIDServer must reside directly on the LAN, any station connected to the LAN, direct or via modem, can be checked for having the proper authorization.
The Baitware Process
The RID as used with Burnin allow for the Baitware method of software distribution/anti-piracy. Any means of software distribution can be used for
Baitware. This ranges from mass-produced floppies and CD-ROMs to the Internet.
The steps of the Baitware method are as follows: 1) Using the Burnin process described above, the application in version Vω is released as "TrialWare" on date D(x); the application V(x) is Burnlned with the following information: a) a trial period (T(x)) from first execution, after which the program becomes expired Depending on developer preference, expired programs are disabled via Burnin b) an undisclosed "absolute expiry date" or death-date, D(d), set for a date which is given by
D(d) = D(x) + T(d), where T(d) is a time period of at least 3 times the time period T(u), as described by point 2) c) a dynamically generated MIV d) user information (prompted for) 2) The Burmn process is augmented or enhanced with a new step to re-cover user-registration data from all installations and/or first executions of the application This step can be implemented m many forms
The simplest is to print the registration torm (including all user and dynamically generated data) with a mail-back address, then manually enter all data into a database
The ideal way to implement this step is employ the RIDServer and transmit the registration data to it The RIDServer maintains a database of all registered customers of the application In this step, the RIDServer performs the following steps
1 receive registration data packet,
2 decrypt registration data packet, 3. search database for matching RID,
4. if found
Store all received information with the "infringer" tag in the database, - Send back a negative response, indicating that the application should become expired,
5. else (if not found)
Store all received information in the 'database; this means the process assumes that the user identified by the input MIV is now the legal owner of the application-copy identified by the input RID.
Note: if implemented as a simple mail-out-form, the steps outlined under the RIDServer would have to be manually performed by the developer.
Within a time period, T(u), after the release date, D(x), a free upgrade of the application in version V(x+ 1) is released. T(u) is specified by the developer as the time period required for the product to reach 50% of all illegal users. The upgrade V(χ+i) 7ύl upgrade legal and illegal copies of the application in version V(x). The application V(x+ 1) will contain patches and responses to user requests. In addition, V(x+ 1) contains an encrypted list of all registered RID-MIV pairs, as extracted from the database constructed in step 2) .
The following steps are performed during the Baitware Upgrade Process to weed out illegal users: 1. search the data base for a matching MIV-RID pair,
2. if found reset the absolute expiry date, D(x), to X years from current date; these are the authorized users or paid customers of the application (the reset-date is specified by the developer as the expected lifetime of the application in V(x+ I)),
3. else (if not found) if using a RIDServer, transmit all registration data. RIDServer will simply record all the data for later analysis, - depending on developer preference, inform user that he/she is an illegal user of the application, leave the absolute expiry date, D(x), unchanged,
4. After the absolute expiry date, D(d), the infringer is faced with a situation where - The installed application V(x+ 1) no longer works.
Pirating the upgrade V(x+ 1) does not help either, since the current machine's MIV must match. In fact, the upgrade can perform any action when a non-existing MIV is encountered, including disabling/deleting application data.p
Baitware not only allows for mass CD-replication and Internet distribution, but also for a nearly full-proof way of preventing piracy. Concise Restatements of the Invention Primary Restatement
The primary restatement of the invention (in the most generic and general description) is that the developer can influence installed copies of his application remotely. By remotely, we mean where the developer does not know the physical location and/or ownership of some or all of the installed copies of the application which have been distributed to customers.
Secondary Restatement A secondary restatement is that the developer can discriminate among those who would try to install the upgrades or updates based on feamres in his own customer database such as paid/unpaid, age, geographical location, etc. The developer can custom tailor each upgrade with a variety of approaches. For example : • Upgrade feature A (say the removal of a drop dead date)- paid users only.
Up grade feature B (all users, regardless of paid unpaid status) ■ UF - C - All valid MIVs of odd number UF - D - All valid MIVs of even number • UF - E - All MIVs of even number
UF - F - All MIVs of odd number
The choice of odd and even was for purpose of illustration. The developer choose to sort his customer database in some fashion and the upgrades (and hence his ability to remotely influence each and every copy of the installed base, without having to know where it was located or in whose possession it was stored applies.
It is not the purpose of this method to apply a value judgement on what basis a developer might choose to discriminate among those using his application.
The above description is not intended to limit the claimed invention in any manner, furthermore, the discussed combination of feamres might not be absolutely necessary for the inventive solution.
The present invention has been described with regard to preferred embodiments. However, it will be obvious to persons skilled in the art that a number of variations and modifications can be made without departing from the scope of the invention as described herein.

Claims

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE PROPERTY OF PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1.) The present invention comprises a method and means of preventing software piracy whereby software is treated and distributed according to the Baitware process; the Baitware process comprising the steps of: a.)Treating the software to use the Burnin process, wherein Burnin performs the initialization steps of: i.) Calculating a trial period (T( )) from first execution, after which the program becomes expired, whereby expired programs are disabled via Burnin depending on software developer preference, ii.)Assigning an undisclosed "absolute expiry date" or death-date, D(d), set for a date which is given by:
D(d) = D(x) + T(d), where T(d) is a time period of at least 3 times the time period T(u) iii. dynamically generating an MIV value using the current computer software and hardware configurations, iv.)Prompting the user for user information and the developer supplied RID, where the set of user information is specified by the software developer, v.)Recording all data from steps i-iv in random and developer-specified locations in the executable file for the software, vi.)Recording all data from steps i-iv in random and developer- specified locations within the current system-configuration-defmition or registry, b. distributing the Burnlned software in version V(x) as TrialWare on the date
D(x) via any and all distribution channels, these channels including: i.)Floppies ii.) CD-ROM iii.) Internet iv.) Intranet v.)Extranet c.)Generating and dispensing a new and unique RID value for each copy of software sold to a user, the RID value being unique across all versions of the software throughout its life-time, d.)Augmenting the Burnin process with a new step to re-cover user- registration data for paid users, including the MIV and RID values, from all installations and/or first-executions of the software, and to further store this data in the Customer Database, e. Constructing a free upgrade of the software in version V(x ) which includes the Customer Database constructed in step d; version V(x+ 1 ) being able to upgrade legal and illegal copies of the software in version V(x) via the initialization steps of: i.)Searching the Customer Database for a matching MIV-RID pair, ii.)If found, resetting the absolute expiry date, D(x), to Y years from current date, where Y is defined as the life-time of the software in version V(x+,), iii.jlf not found, recording all registration data and dynamically generated data to the central data base of step d, identifying a particular MIV as an illegal, but still upgraded user, f distributing the software in version V(x+1) constructed in step-e as a free upgrade within a time period, T(u), after the release date, D(x) where T(u) is specified by the software developer as the time period required for the product to reach 100% of currently legal users, g.)Disabling each copy of the software in version V(x+uon the death date D(d); this process, which is activated the next time the software is run on or after the death date, comprising the steps of: i.)Executing and/or undertaking all additional actions specified by the software developer, ii.)Further disabling the software in version V(x), thereby also disabling any future re-installations of the software in version
V(*)> h.)Contacting all illegal users recorded in the Customer Database on the death date D(d), and communicating all software developer specified information.
2. A method and means of software distribution and re-distribution whereby software piracy is eliminated; the process comprising the same steps as 1 above.
3. A method and means of preventing software piracy wherein the released software is protected from infringement by forcing infringers to have to register the software product for continued use.
4. A method and means of preventing software piracy wherein infringers of released software are coerced into .purchasing the product for continued use.
5. A method and means of preventing software piracy as in 1 above, wherein each dynamically generated MIV value (1.x) is further associated with user information consisting of the following data: a.)Name, b.)Email, c.)Address, d.)Phone, e.)etc.
6. A method and means of preventing software piracy as in 5 above, where the released and branded software (1.x) is further used to distinguish paying users from infringers, such that an infringer' s copy of the software also identifies the paying user who illegally re-distributed the software.
7. A method and means of preventing software piracy wherein new market share for the software is forcibly created from the illegal user market for that software.
8. A method and means of preventing software piracy wherein new marketing and distribution channels are forcibly created from the illegal distribution channels for that software.
9. A method and means of preventing software piracy as in 1 above, wherein Copying the installed application from one legal machine to an infringer (even if the registry information is correctly updated) will not enable the infringer to run the application, since the program will generate a different MIV from that which has been burned into its own executable.
10. A method and means of enforcing the terms of any software license by controlling any copy of software after it has left the actual possession of the developer.
1 1. A method and means of creating a database for maintaining ongoing customer relations.
EP99957100A 1998-06-18 1999-06-18 Bait software Withdrawn EP1093604A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8977298P 1998-06-18 1998-06-18
US89772P 1998-06-18
PCT/CA1999/000560 WO1999066386A1 (en) 1998-06-18 1999-06-18 Bait software

Publications (1)

Publication Number Publication Date
EP1093604A1 true EP1093604A1 (en) 2001-04-25

Family

ID=22219508

Family Applications (1)

Application Number Title Priority Date Filing Date
EP99957100A Withdrawn EP1093604A1 (en) 1998-06-18 1999-06-18 Bait software

Country Status (3)

Country Link
EP (1) EP1093604A1 (en)
CA (1) CA2335298A1 (en)
WO (1) WO1999066386A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1201283C (en) * 2000-01-13 2005-05-11 皇家菲利浦电子有限公司 Protecting compressed content after separation from original source
JP4919537B2 (en) * 2000-02-01 2012-04-18 ファロ テクノロジーズ インコーポレーテッド Method, system, and storage medium for providing executable program to coordinate measurement system
US7487543B2 (en) * 2002-07-23 2009-02-03 International Business Machines Corporation Method and apparatus for the automatic determination of potentially worm-like behavior of a program
US7962896B2 (en) 2005-10-31 2011-06-14 Eazypaper Inc. Method and system for automatically configuring software
US7752139B2 (en) 2005-12-27 2010-07-06 Michael Noel Hu Method and system for managing software licenses and reducing unauthorized use of software
US20150040240A1 (en) * 2013-08-01 2015-02-05 Corel Corporation System and method for software piracy monetization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291598A (en) * 1992-04-07 1994-03-01 Gregory Grundy Method and system for decentralized manufacture of copy-controlled software
WO1994007204A1 (en) * 1992-09-21 1994-03-31 Uniloc (Singapore) Private Limited System for software registration
US5757907A (en) * 1994-04-25 1998-05-26 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9966386A1 *

Also Published As

Publication number Publication date
WO1999066386A1 (en) 1999-12-23
CA2335298A1 (en) 1999-12-23

Similar Documents

Publication Publication Date Title
US8510861B2 (en) Anti-piracy software protection system and method
CN100461064C (en) Method and system for limiting software updates
US7752139B2 (en) Method and system for managing software licenses and reducing unauthorized use of software
US6697948B1 (en) Methods and apparatus for protecting information
US8613110B2 (en) Software piracy prevention through remote enforcement of an activation threshold
US5925127A (en) Method and system for monitoring the use of rented software
EP1962216A2 (en) Method for detecting duplicated instances of a software license
US20020010863A1 (en) Method for protecting software
EP2413257B1 (en) Method for replacing an illegitimate copy of a software program with legitimate copy and corresponding system
JP2008262580A (en) Software execution control system and software execution control program
EP1093604A1 (en) Bait software
WO2006101765A2 (en) Method for preventing unauthorized installation of a software product
US7197144B1 (en) Method and apparatus to authenticate a user&#39;s system to prevent unauthorized use of software products distributed to users
KR101265887B1 (en) Renewable and individualizable elements of a protected computing environment
WO2003027864A1 (en) Systems and methods for preventing unauthorized copying of software downloaded from a remote server
CN117633776A (en) Abnormal request monitoring method, device and equipment
WO2001095073A1 (en) A method relating to copy protection

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20001229

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

17Q First examination report despatched

Effective date: 20010809

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20030318