US8392910B1ActiveUtility

Stochastic method for program security using deferred linking

82
Assignee: ASHER MICHAEL LPriority: Apr 10, 2007Filed: Apr 10, 2007Granted: Mar 5, 2013
Est. expiryApr 10, 2027(~0.7 yrs left)· nominal 20-yr term from priority
Inventors:Michael Asher
G06F 21/14G06F 8/61G06F 9/44
82
PatentIndex Score
10
Cited by
7
References
12
Claims

Abstract

A method to install software by receiving a partially linked version of the software including a plurality of code modules, randomly ordering the code modules, assigning non-volatile memory addresses for the software and generating an executable image of the software. A system to install a software application having a partially linked object code version of the software application including a plurality of code modules and an installation program configured to randomly order the code modules, assign non-volatile memory addresses for the software, and generate an executable image of the software, wherein the installation program performs the ordering, assigning, and generating on a target computing device that is different from a development computing device that partially linked the software application.

Claims

exact text as granted — not AI-modified
1. A method to install software, comprising:
 receiving, by an installer, a partially linked object code version of the software including a plurality of code modules, wherein the partially linked object code version of the software has at least a portion of external references resolved; 
 randomly ordering the code modules, by the installer; 
 inserting a random number of bytes between all of the ordered code modules; 
 assigning, by the installer, non-volatile memory addresses for the software; and 
 generating, by the installer, an executable image of the software that is unique to a local system, 
 wherein the steps of randomly ordering the code modules, inserting the random number of bytes, assigning the non-volatile memory addresses and generating the executable image are performed during a software installation process. 
 
     
     
       2. The method of  claim 1 , further comprising:
 storing the executable image to a hard drive. 
 
     
     
       3. The method of  claim 1 , further comprising:
 copying the executable image of the software to a mobile computing device. 
 
     
     
       4. The method of  claim 3 , wherein the mobile computing device is one of a PDA and a mobile telephone. 
     
     
       5. The method of  claim 1 , further comprising:
 copying the executable image of the software to an embedded computing device. 
 
     
     
       6. A system to install a software application, the system comprising:
 a non-transitory memory storing a partially linked object code version of the software application including a plurality of code modules, wherein the partially linked object code version of the software application has at least a portion of external references resolved; and 
 an installation program configured to:
 randomly order the code modules, 
 insert a random number of bytes between all of the ordered code modules; 
 assign non-volatile memory addresses for the software, and 
 generate an executable image of the software that is unique to a local system, 
 
 wherein the installation program performs the ordering, assigning, and generating on a target computing device that is different from a development computing device that partially linked the software application, and 
 wherein the installation program performs the ordering, inserting, assigning, and generating during a software installation process. 
 
     
     
       7. The system of  claim 6 , wherein the installation program is further configured to:
 store the executable image to a hard drive. 
 
     
     
       8. The system of  claim 6 , wherein the target computing device is one of a desktop computer, a laptop computer, a mobile computing device and an embedded computing device. 
     
     
       9. The system of  claim 6 , wherein the partially linked object code and the installation program are provided to users on one of an optical media and a magnetic media. 
     
     
       10. The system of  claim 6 , wherein the partially linked object code and the installation program are downloaded by users via a computer network. 
     
     
       11. A non-transitory computer readable storage medium including a set of instructions executable by a processor, the set of instructions performing a method comprising:
 receiving, by an installer, a partially linked object code version of a software application including a plurality of code modules, wherein the partially linked object code version of the software application has at least a portion of external references resolved; 
 randomly ordering the code modules, by the installer; 
 inserting random numbers of bytes between all of the ordered code modules; 
 assigning, by the installer, non-volatile memory addresses for the software; and 
 generating, by the installer, an executable image of the software that is unique to a local system, 
 wherein the instructions to randomly order the code modules, insert random numbers of bytes, assign the non-volatile memory addresses and generate the executable image are performed during a software installation process. 
 
     
     
       12. The non-transitory computer readable storage medium of  claim 11 , wherein the method further comprises:
 storing the executable image to a hard drive.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.