从其他进程获取模块句柄

2024-01-14

有没有办法使用 C++ 从另一个进程获取我知道其名称的模块的句柄?
GetModuleHandle and GetModuleHandleEx仅从同一进程获取句柄就很好。


您可以使用读取进程内存 http://msdn.microsoft.com/en-us/library/windows/desktop/ms680553%28v=vs.85%29.aspx and PEB_LDR_数据 http://msdn.microsoft.com/en-us/library/windows/desktop/aa813708%28v=vs.85%29.aspx

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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从其他进程获取模块句柄 的相关文章

随机推荐