2
有沒有辦法從另一個使用C++的進程獲取模塊的句柄?
GetModuleHandle
和GetModuleHandleEx
是很好的,只從相同的過程獲得句柄。獲取來自其他進程的模塊句柄
有沒有辦法從另一個使用C++的進程獲取模塊的句柄?
GetModuleHandle
和GetModuleHandleEx
是很好的,只從相同的過程獲得句柄。獲取來自其他進程的模塊句柄
您可以使用ReadProcessMemory和PEB_LDR_DATA
typedef struct _PEB_LDR_DATA {
BYTE Reserved1[8];
PVOID Reserved2[3];
LIST_ENTRY InMemoryOrderModuleList;
} PEB_LDR_DATA, *PPEB_LDR_DATA;
的LIST_ENTRY是包含該dll被加載在那裏你的DLL名稱和基地址的鏈接列表。
typedef struct _LDR_DATA_TABLE_ENTRY {
PVOID Reserved1[2];
LIST_ENTRY InMemoryOrderLinks;
PVOID Reserved2[2];
PVOID DllBase;
PVOID EntryPoint;
PVOID Reserved3;
UNICODE_STRING FullDllName;
BYTE Reserved4[8];
PVOID Reserved5[3];
union {
ULONG CheckSum;
PVOID Reserved6;
};
ULONG TimeDateStamp;
} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
CreateToolHelp32Snapshot函數+ Module32First /下一頁 –
有一個答案在http://stackoverflow.com/questions/865152/how-can-i-get-a-process-handle-by-its-name-in -c來自之前的帖子。 –