Stochastic method for program security using deferred linking
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-modified1. 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.