IP Library Patent Application 11177523
Patent Application
App. No. 11/177,523

Methods and apparatus for secure distribution of software

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 None
App. No.
11/177,523
Abstract

Software is securely distributed with limited usage rights. The software may be an executable program and/or one or more data files such as image or multimedia data files. The software includes an access control object which prevents at least some usage of the software without use of a first access control code. The first access control code is produced based on selected information characteristic of the user's computer system. The access control code is produced in a server computer to which the user directs a request for the access control code. The user makers a payment to receive the access control code, which is then downloaded to the user's computer system.

Claims (52)

1 . A software package comprising:

a first object providing a first set of a plurality of features;

a second object providing a second set of a plurality of features including some, but less than all, of the features included in the first set; and

an access control portion affording selective access to the first software object and/or the second software object.

2 . The software package of claim 1 , wherein the first and second objects are executables.

3 . The software package of claim 1 , wherein the first and second objects are data objects.

4 . A software package, comprising:

a first object providing a first set of a plurality of features, the first object being encrypted; and

a second object providing a second set of a plurality of features including some, but less than all, of the features included in the first set, the second object being unencrypted.

5 . A software package, comprising:

a first executable object; and

a wrapper for the first executable object, the wrapper being operative to erase predetermined software from the first executable object when it has been loaded in running format in memory.

6 . The software package of claim 5 , wherein the predetermined software comprises an import table.

7 . The software package of claim 5 , wherein the predetermined software comprises relocation information.

8 . The software package of claim 5 , wherein the predetermined software comprises a directory pointer.

9 . The software package of claim 5 , wherein the predetermined software comprises an entry point pointer.

10 . The software package of claim 5 , further comprising usage information defining at least one permitted use of the first executable object, the wrapper being operative to reference the usage information to control usage of the first executable object.

11 . The software package of claim 10 , wherein the first executable object is operative to access a file external to the software package and the wrapper is operative to control usage of the first executable object to access the external file based on the usage information.

12 . The software package of claim 11 , wherein the external file is encrypted and the wrapper is operative to control decryption of the external file.

13 . The software package of claim 11 , wherein the wrapper is operative to detect an unauthorized request for access to the external file and upon such detection to control the display of a dialog box to a user soliciting payment for the requested access.

14 . A software package, comprising:

a first executable object; and

a wrapper for the first executable object;

the first executable object being operative, while running, to access a feature of the wrapper;

the wrapper being operative to supply the feature to the first executable object when the feature is accessed thereby.

15 . The software package of claim 14 , wherein the first executable object is operative to access a print control feature of the wrapper, and the wrapper is operative to control execution of a print feature in response to access of the print control feature thereof by the first executable object.

16 . The software package of claim 14 , wherein the first executable object is operative to access a copy control feature of the wrapper, and the wrapper is operative to control execution of a copy feature in response to access of the copy control feature thereof by the first executable object.

17 . The software package of claim 14 , wherein the first executable object is operative to access a read-file control feature of the wrapper, and the wrapper is operative to control execution of the read file feature in response to access of the read-file control feature thereof by the first executable object.

18 . The software package of claim 14 , wherein the wrapper is operative to control execution of a decryption feature in response to the access by the first executable object.

19 . The software package of claim 14 , wherein the first executable object includes at least one record storing an address of the wrapper, the first executable object being operative to access the feature of the wrapper by transferring program execution control to the address of the wrapper.

20 . The software package of claim 19 , wherein the wrapper is operated to supply the feature by calling an executable routine external to the software package.

21 . A software package, comprising:

a first executable object, and

a wrapper for the first executable object;

the first executable object being operative to call a predetermined feature external thereto;

the wrapper being operative upon a call of the predetermined feature by the first executable object to transfer program execution control to a predetermined address within the wrapper to control access by the first executable object to the predetermined feature.

22 . The software package of claim 21 , wherein the first executable object stores an address record for an address of software providing the predetermined feature, and the wrapper is operative to store an address of the wrapper in the address record.

23 . The software package of claim 22 , wherein the first executable object stores the address record in an import table including a plurality of address records for calling a plurality of routines external to the software package, the wrapper being operative to resolve the addresses of the plurality of routines and to insert a predetermined one of the routine addresses as the address record in the import table.

24 . The software package of claim 23 , wherein the wrapper is operative to insert each of a plurality of the routine addresses in a respective one of the plurality of address records in the import table.

25 . An executable object, comprising: a first code portion comprising first predetermined instructions; and

a second code portion comprising loading instructions required for loading the first code portion in a memory of a computer system to be programmed thereby, the second code portion being operative to control the computer system to erase the loading instructions from memory upon loading the first code portion in memory.

26 . A computer system, comprising:

a processor;

a memory;

an instruction input device; and

an executable object stored in the computer system, the executable object having a first code portion comprising first predetermined instructions for execution by the processor, and a second code portion including loading instructions, the processor being operative upon receipt of a predetermined instruction from the instruction input device to load the second code portion in the memory, the processor being operative under the control of the loading instructions to load the first code portion in the memory and operative under the control of the second code portion to erase the loading instructions from the memory upon loading the first code portion in memory.

27 . A computer system, comprising:

a processor;

a memory;

an instruction input device; and

a software package stored in the computer system, the software package having a first object providing a first set of a plurality of features, a second object providing a second set of a plurality of features including some, but less than all, of the features included in the first set, and an access control portion;

the processor being operative to load the software package in the memory, the processor being further operative to request access to a selected one of the first and second objects in response to a predetermined instruction from the instruction input device, the access control portion being operative to selectively control access to the selected object.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jan 20, 2011
From: BANK OF MONTREAL, AS AGENT
To: FLEXERA SOFTWARE, INC. (F/K/A ACRESSO SOFTWARE INC.)
Reel/Frame 025668/0070 →
CHANGE OF NAME Recorded Nov 25, 2009
From: ACRESSO SOFTWARE INC.
To: FLEXERA SOFTWARE, INC.
Reel/Frame 023565/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2008
From: MACROVISION CORPORATION
To: ACRESSO SOFTWARE INC.
Reel/Frame 020817/0960 →
SECURITY AGREEMENT Recorded Apr 2, 2008
From: ACRESSO SOFTWARE INC.
To: BANK OF MONTREAL, AS AGENT
Reel/Frame 020741/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2006
From: TRYMEDIA SYSTEMS, INC.
To: MACROVISION CORPORATION
Reel/Frame 017606/0135 →