需要进行提权
// message.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <windows.h>
#pragma comment(lib,"Advapi32.lib")
BOOL EnableDebugPriv()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
if ( !OpenProcessToken( GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) )
{
return FALSE;
}
if (!LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) )
{
CloseHandle( hToken );
return FALSE;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if ( ! AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) )
{
CloseHandle( hToken );
return FALSE;
}
return TRUE;
}
int _tmain(int argc, _TCHAR* argv[])
{
EnableDebugPriv();
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,0,1644);
if(!hProcess)
{
printf("ErrorCode=%x\n",GetLastError());
}
else
printf("hPorcess=%x\n",hProcess);
getchar();
return 0;
}