Method and apparatus for providing dynamically linked libraries
First Claim
1. A method for dynamically binding a root fragment and a plurality of dynamically linked libraries into an executable process on a computer system comprising the steps of:
- storing a DLL collection of standard dynamically linked libraries and phantom dynamically linked libraries in a memory of a computer system;
receiving a bind command within an operating system function executing on said computer system to bind dynamically linked libraries with a root fragment into a new executable process, said operating system function initiating a binding manager executing on said computer system to perform the binding process, said binding manager having access to said DLL collection;
determining within said binding manager which standard dynamically linked libraries are needed by said root fragment, wherein said standard dynamically linked libraries are known to at least one of said root fragment and another of said standard dynamically linked libraries; and
determining which phantom dynamically linked libraries are to be used within said executable process, wherein said phantom dynamically linked libraries are not known to either of said root fragment or said standard dynamically linked libraries needed by said root fragment.
3 Assignments
0 Petitions
Accused Products
Abstract
According to the present invention a variety of methods and apparatus for providing dynamically linked libraries are taught. A "standard DLL" is a dynamically linked library (DLL) which is pulled into the data closure of a process by direct reference in the process'"'"' root DLL or by direct reference in other DLLs present in the data closure. In contrast, the present invention teaches a "phantom DLL" which is pushed into the data closure of an executable process and is not directly referenced either by the root DLL or by other DLLs present in the data closure. In some embodiments the phantom DLL includes an anonymous initialization routine which the binding manager executes when the phantom DLL is added to a new process data enclosure. By executing the initialization routine the phantom DLL has an opportunity to execute and impact the computing environment of the new process. A method for dynamically binding a root DLL and a plurality of DLLs into an executable process on a computer system includes the steps of storing a collection of standard DLLs and phantom DLLs in a memory of the computer system, receiving a bind command within an operating system function, determining which standard dynamically linked libraries are needed by the root DLL, and determining which phantom dynamically linked libraries are to be used within the executable process.
59 Citations
27 Claims
-
1. A method for dynamically binding a root fragment and a plurality of dynamically linked libraries into an executable process on a computer system comprising the steps of:
-
storing a DLL collection of standard dynamically linked libraries and phantom dynamically linked libraries in a memory of a computer system; receiving a bind command within an operating system function executing on said computer system to bind dynamically linked libraries with a root fragment into a new executable process, said operating system function initiating a binding manager executing on said computer system to perform the binding process, said binding manager having access to said DLL collection; determining within said binding manager which standard dynamically linked libraries are needed by said root fragment, wherein said standard dynamically linked libraries are known to at least one of said root fragment and another of said standard dynamically linked libraries; and determining which phantom dynamically linked libraries are to be used within said executable process, wherein said phantom dynamically linked libraries are not known to either of said root fragment or said standard dynamically linked libraries needed by said root fragment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A structure for an executable process comprising:
-
a root fragment including a root functionality of a desired process; and at least one phantom dynamically linked library bound to said executable process, wherein said at least one phantom dynamically linked library performs a phantom library function that is not known by said root fragment, wherein the combination of said root fragment and said at least one phantom dynamically linked library comprises an executable process on a computer system. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A binding system for binding dynamically linked libraries to a root process comprising:
-
a computer system including a central processing unit and memory coupled to said central processing unit; a DLL collection stored in said memory, said DLL collection including standard dynamically linked libraries and phantom dynamically linked libraries; a root fragment stored in said memory; a binding manager stored in said memory and executing on said central processing unit, said binding manager having access to said DLL collection and said root fragment, said binding manager determining which standard dynamically linked libraries are needed by said root fragment, wherein said standard dynamically linked libraries are known to at least one of said root fragment and another of said standard dynamically linked libraries; and a service stored in said memory and executing on said central processing unit, said service having access to said DLL collection and said root fragment, said service determining which phantom dynamically linked libraries are to be used with said root fragment, wherein said phantom dynamically linked libraries are not known to either of said root fragment or said standard dynamically linked libraries. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A method for dynamically binding a root fragment and a plurality of dynamically linked libraries into an executable process on a computer system comprising the steps of:
-
(a) storing a DLL collection of standard dynamically linked libraries and phantom dynamically linked libraries in a memory of a computer system; (b) receiving a bind command within a service executing on said computer system to bind dynamically linked libraries with a root fragment into a new executable process, said service initiating the binding process; (c) determining which standard dynamically linked libraries are needed by said root fragment, wherein said standard dynamically linked libraries are known to at least one of said root fragment and another of said standard dynamically linked libraries, said phantom dynamically linked libraries not known to either of said root fragment or said standard dynamically linked libraries needed by said root fragment; (d) selecting an unprocessed phantom dynamically linked library; (e) determining if said selected phantom dynamically linked library is intended to patch a one of said standard dynamically linked libraries needed by at least one of said root fragment and another of said standard dynamically lined libraries needed by said root fragment, and, if so, requesting that said selected phantom dynamically linked library be added into said executable process; (f) requesting that said selected phantom dynamically linked library be added into said executable process if it is determined in step (e) that said selected phantom dynamically linked library is not intended to patch; (g) marking said selected phantom dynamically linked library as processed; (h) marking each phantom dynamically linked library which has not been added into said executable process as unprocessed when said selected phantom dynamically linked library is added to said executable process in step (e); and (i) repeating steps (d)-(h) until each of the phantom dynamically linked libraries are marked as processed.
-
Specification