Получение размера сегмента кода DLL или EXE при загрузке в память - PullRequest
0 голосов
/ 24 марта 2012

Я могу использовать GetModuleHandle, чтобы получить его базовое смещение, но мне также нужно знать размер сегмента кода DLL или EXE.Например, мне нужно оценить nSize в этом коде:

char aCrashSignatureBytesAtEIP[] = { 0x87, 0x12, 0x00, ... };
char* pBaseOffset = (char*) GetModuleHandle(NULL);
int nSize = ???;
for (int i = 0; i<nSize; i++)
    if (!memcmp(&pBaseOffset[i], aCrashSignatureBytesAtEIP, sizeof(aCrashSignatureBytesAtEIP)))
    {
        printf("Crash signature found at offset %p", &pBaseOffset[i]);
    }

1 Ответ

1 голос
/ 24 марта 2012

PSAPI дает вам следующее: GetModuleInformation функция возвращает вам MODULEINFO структуру с базовым адресом и размером изображения.

typedef struct _MODULEINFO {
  LPVOID lpBaseOfDll;
  DWORD  SizeOfImage;
  LPVOID EntryPoint;
} MODULEINFO, *LPMODULEINFO;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...