Patent attributes
Systems, methods, and computer programming products for loading and upgrading software using DLL files injected into a running target program process by a DLL manager of an injection program. Background services of the injection program allocate virtual memory for the code and data within the memory addresses dedicated to the target program process and injects the code and data by writing the code and data of the DLL manager to the virtual memory. A remote thread created within the target program process, controlled by the injection program, executes the DLL manager code, allowing the DLL manager to load and unload DLL files within the target program process. During runtime of the target program process the software can be upgraded, without rebooting the OS executing the target program process, by instructing the DLL manager to unload the DLL file(s), and load and/or re-load updated DLL file(s) within the target program process.