如果我们想读取目标进程中的内存 就需要将进程提权 否则访问失败。
下面是提权代码
#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; }
时间: 2024-10-16 13:55:43