Patent ID: 7631292

Claim:
A method of securing an application for execution at a computing device having one or more processors and memory communicatively coupled to the one or more processors, the method comprising: defining, in the memory of the computing device, code segments configured to store one or more code components for the application, the one or more code components comprising executables of the application and corresponding dynamically-linked libraries (DLLs) of the application, wherein the code segments are defined by reading metadata identifying the one or more components and data regarding the size of the code segments including import tables describing specific linkages to the DLLs of the application; disposing the one or more code components in the code segments; and randomizing, via the computing device, addresses of the code segments in the memory to prevent attacks from utilizing valid code existing in the application, wherein the layout of the import tables is randomly rearranged within the memory for the application upon loading of the application based on the metadata.