RT。。。。我目前在XP下面可以获取进程用户名,但是编译的程序在WIN7下面只能获取用户名是主机的进程。
比如SYSTEM,LOCAL SERVICE都获取不到。原因不太清楚。请大牛指教下。
下面是代码。
#include <windows.h>
#include <iostream>
using namespace std;
#include "WtsApi32.h"
#pragma comment(lib,"WtsApi32.lib")
int main()
{
SID_NAME_USE snu;
TCHAR szUsername[MAX_PATH];
TCHAR szDomainname[MAX_PATH];
DWORD dwUsernameSize;
DWORD dwDomainnameSize;
WTS_PROCESS_INFO* pProcInfo;
WTS_PROCESS_INFO* tmpProcInfo;
DWORD dwProcInfoSize;
// 返回特定服务上的活动进程
int flag = 0;
if (WTSEnumerateProcesses(WTS_CURRENT_SERVER_HANDLE, 0, 1, &pProcInfo, &dwProcInfoSize))
{
tmpProcInfo = pProcInfo;
for (DWORD i = 0; i < dwProcInfoSize; ++i)
{
dwUsernameSize = sizeof(szUsername);
dwDomainnameSize = sizeof(szDomainname);
if (LookupAccountSid(NULL, tmpProcInfo->pUserSid,
szUsername, &dwUsernameSize, szDomainname,
&dwDomainnameSize, &snu))
{
wcout << flag << L": " << tmpProcInfo->ProcessId << L" " << szUsername << endl;
}
++tmpProcInfo;
++flag;
}
WTSFreeMemory(pProcInfo);
}
system("pause");
return 0;
}
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法