Windows核心编程2-丹

进程

获取自身模块基地址的三种方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <tchar.h>
extern "C" const IMAGE_DOS_HEADER __ImageBase;
VOID DumpModule(VOID) {
//法一
HMODULE hModule = ::GetModuleHandle(NULL);
_tprintf(TEXT("0x%x\r\n"),(LONG)hModule);
//法二
_tprintf(TEXT("0x%x\r\n"), (LONG)&__ImageBase);
//法三
hModule = NULL;
::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (PCTSTR)DumpModule, &hModule);
_tprintf(TEXT("0x%x\r\n"), hModule);
return;
};
int _tmain(int argc,char* argv[]) {
UNREFERENCED_PARAMETER(argc);
UNREFERENCED_PARAMETER(argv);
DumpModule();
return 0;
};