//获取模块基址可以使用windows api函数GetModuleHandle
#include "stdafx.h"
#include "windows.h"
#include "process.h"
int main(int argc, char* argv[])
{ //获取模块基址
HMODULE hmou = ::GetModuleHandle(NULL);
long int addr = (long int)hmou;
printf("进程基址:0X%0X\n", addr);
system("pause");
return 0;
}
HMODULE GetModuleHandle (LPCTSTR lpModuleName);
▲功能说明:获取一个应用程序或动态链接库的模块句柄
▲参数说明:lpModuleName 模块名称
▲返回值:如执行成功成功,则返回模块句柄。零表示失败。通过GetLastError获得错误信息
如:
GetModuleHandle(NULL);
这将返回自身应用程序句柄
▲注意:
前提是:只有欲获取的模块已映射到调用该函数的进程内,才会正确得到模块句柄。常用模块映射函数:LoadLibrary(..)。