如果我们想读取目标进程中的内存 就需要将进程提权 否则访问失败。
下面是提权代码
#include <TlHelp32.h> /***************************************************/
/* 函数: 进程提权
/* 参数:HANDLE 目标进程句柄
/* 返回: 是否成功
/* 创建人: 日期 内容
/* 金胖胖 2015年2月27日 新建
/***************************************************/
bool ImprovePermission(HANDLE hProcessHandle)
{
HANDLE hToken = NULL; //令牌指针
LUID luid = {0}; //系统权限的特权值 结构体
TOKEN_PRIVILEGES tp = {0}; if(!::OpenProcessToken(hProcessHandle,TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
return false;
} if(!::LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&luid))
{
::CloseHandle(hToken);
return false;
} tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
::AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);
::CloseHandle(hToken); return true;
}