Frequently Asked Questions
Maping a DLL into another process
Question:
Is it possible to map a DLL into another process under Win32?
Answer:
Yes, the following details one method of forcing a DLL to be mapped
into a different process under both Windows NT, and Windows 95.
- Install a global WH_GETMESSAGE hook which is implemented by the
DLL. Note that you must store the HHOOK variable returned by the
SetWindowsHookEx() function (and any other global variables that are
used in the DLL) into a memory mapped file to be able to access it in
the target process. Note that any global variables contained in the
DLL will not be mapped into the other process, and will contain
uninitialized values when referenced while the DLL is mapped into the
other process(s).
- PostMessage a custom message (WM_USER + something) to a window in
the target process.
- When the hook traps the message the DLL will be mapped into the
target process during the processing of the message.