【问题标题】:getting a module handle from other process从其他进程获取模块句柄
【发布时间】:2011-12-09 15:33:53
【问题描述】:

有没有办法使用 C++ 从另一个进程中获取我知道其名称的模块的句柄?
GetModuleHandleGetModuleHandleEx 只从同一个进程中获取句柄是好的。

【问题讨论】:

标签: c++ module


【解决方案1】:

您可以使用 ReadProcessMemoryPEB_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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多