получение дескриптора модуля из другого процесса - PullRequest
2 голосов
/ 09 декабря 2011

Есть ли способ получить дескриптор модуля, имя которого я знаю, из другого процесса, использующего C ++?
GetModuleHandle и GetModuleHandleEx хороши, только получая дескриптор из того же процесса.

1 Ответ

1 голос
/ 09 декабря 2011

Вы можете использовать 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...