IP Library Granted Patent US 7,716,474
Granted Patent B2
US 7,716,474 · App. 10/844,565 · Granted May 11, 2010

Anti-piracy software protection system and method

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,716,474
App. No.
10/844,565
Granted
May 11, 2010
Kind
B2
Abstract

A method and system for protecting software products from unauthorized use and distribution is described. The system comprises a client process executed on a client computer coupled to a producer computer over a network. The method comprises the steps of providing to a user a copy of the distributed software, the distributed software comprising an incomplete executable program requiring a security module to be installed prior to execution on the client computer. The user receives a registration code for use with the distributed software. Upon attempted execution of the distributed software the producer computer requests user registration from the user. Upon receipt of the registration information including the registration code from the user, the producer computer validates the registration code and constructing a security module for transmission to the client computer. The security module is integrated with the distributed software to allow execution of the executable program.

Claims (35)

1. A computer-implemented method for protecting distributed software containing an executable program over a client server network, the method comprising:

providing to a user a copy of the distributed software, the distributed software comprising an incomplete executable program requiring a unique security module that includes at least a portion of a program instruction to be installed prior to execution on the client computer;

transmitting to the user a registration code for use with the distributed software;

requesting user registration from the user upon attempted execution of the distributed software;

receiving registration information including the registration code from the user;

validating the registration code received from the user;

constructing the unique security module upon validation of the registration code;

transmitting the unique security module to the client computer; and

accessing the portion of the program instruction of the unique security module with the distributed software to allow execution of the executable program.

2. The method of claim 1 wherein the distributed software comprises one or more executable programs embodied on disk media.

3. The method of claim 1 wherein the distributed software comprises one or more executable programs embodied in downloadable digital format.

4. The method of claim 1 wherein the user registration comprises a user name and password, and the method further comprises the step of defining a unique user profile for the user.

5. The method of claim 1 wherein the registration code is transmitted to the user through a method including mail, e-mail, fax, phone, or paper certificate accompanying the distributed software media.

6. The method of claim 5 wherein the registration code is a non-formulaic data string that is compared with a counterpart registration code stored on a server computer coupled to the client computer.

7. The method of claim 6 wherein the unique security module comprises a unique data string, and further comprising the step of encrypting the security module data string prior to installation and transmission to the client computer.

8. The method of claim 7 wherein the unique security module comprises a digital collection of arbitrary functions and dynamic link library pointers.

9. The method of claim 8 further comprising the step of verifying the unique security module and distributed software on a periodic time basis defined by the server computer.

10. A client-server computer system for protecting distributed software containing an executable program distributed from a server computer to a client computer over the network, the system comprising:

means for providing to a user a copy of the distributed software, the distributed software comprising an incomplete executable program requiring a unique security module that includes at least a portion of a program instruction to be installed prior to execution on the client computer, wherein the incomplete executable program is stored on a computer-readable medium accessible to the client computer;

means for transmitting to the user a registration code for use with the distributed software;

means for requesting user registration from the user upon attempted execution of the distributed software;

means for receiving registration information including the registration code from the user;

means for validating the registration code received from the user;

means for constructing the unique security module upon validation of the registration code;

means for transmitting the unique security module to the client computer; and

means for accessing the portion of the program instruction of the unique security module with the distributed software to allow execution of the executable program.

11. The system of claim 10 wherein the distributed software comprises one or more executable programs embodied on disk media.

12. The system of claim 10 wherein the distributed software comprises one or more executable programs embodied in downloadable media.

13. The system of claim 10 wherein the user registration comprises a user name and password, and the method further comprises the step of defining a unique user profile for the user.

14. The system of claim 10 wherein the registration code is transmitted to the user through a method including mail, e-mail, fax, phone, or paper certificate accompanying the distributed software media.

15. The system of claim 14 wherein the registration code is a non-formulaic data string.

16. The system of claim 10 wherein the unique security module comprises a unique data string, and further comprising the step of encrypting the data string prior to installation and transmission to the client computer.

17. The system of claim 16 wherein the unique security module comprises a digital collection of arbitrary functions and dynamic link library pointers.

18. The method of claim 1 wherein the unique security module comprises invalid computer instructions.

19. The method of claim 10 wherein the unique security module comprises invalid computer instructions.

Assignments (11)
RE-DOMESTICATION AND ENTITY CONVERSION Recorded Aug 19, 2019
From: RESOURCE CONSORTIUM LIMITED
To: RESOURCE CONSORTIUM LIMITED, LLC
Reel/Frame 050091/0297 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2011
From: AVASOL, THOMAS
To: BYTEBLAZE AB
Reel/Frame 025634/0826 →
CHANGE OF NAME Recorded Jan 13, 2011
From: ERIKSSON, THOMAS EVALD
To: AVASOL, THOMAS EVALD
Reel/Frame 025635/0224 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2011
From: KARLSSON, TOBIAS
To: BYTEBLAZE AB
Reel/Frame 025635/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2011
From: WENZEL, JURGEN
To: BYTEBLAZE AB
Reel/Frame 025635/0660 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2011
From: BYTEBLAZE AB
To: BYTEBLAZE, INC.
Reel/Frame 025635/0912 →
CHANGE OF NAME Recorded Jan 13, 2011
From: BYTEBLAZE, INC.
To: BYTESHIELD, INC.
Reel/Frame 025636/0072 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2011
From: BYTESHIELD, INC.
To: RESOURCE CONSORTIUM LIMITED
Reel/Frame 025636/0313 →
CHANGE OF NAME Recorded Sep 2, 2010
From: BYTEBLAZE, INC.
To: BYTESHIELD, INC.
Reel/Frame 024933/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2005
From: BYTEBLAZE AB
To: BYTEBLAZE, INC.
Reel/Frame 016682/0426 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2004
From: JAMES, RALPH
To: MICRON TECHNOLOGY, INC.
Reel/Frame 015349/0426 →