system 用户创建的进程创建当前用户(如Administrator)的进程。
2015-04-17 16:18
771 查看
//获取当前进程的灵牌 HANDLE hTokenDup = NULL; HANDLE hThisProcess = GetCurrentProcess(); DWORD dwSessionId = 0; dwSessionId = ::WTSGetActiveConsoleSessionId(); if(dwSessionId == 0xFFFFFFFF) { DWORD f_dwErr = GetLastError(); CString str; str.Format( _T("%s, %d, GefSvr::CreateUsrProcess WTSGetActiveConsoleSessionId Error, Error is 0x%08x"), __FILE__, __LINE__, f_dwErr ); AfxMessageBox(str); return FALSE; } if(!WTSQueryUserToken(dwSessionId,&hTokenDup)) { DWORD f_dwErr = GetLastError(); CString str; str.Format( _T("%s, %d, GefSvr::CreateUsrProcess WTSQueryUserToken Error, Error is 0x%08x"), __FILE__, __LINE__, f_dwErr ); AfxMessageBox(str); return FALSE; } STARTUPINFO si = {'\0'}; PROCESS_INFORMATION pi = {'\0'}; si.cb = sizeof(si); si.lpDesktop = _T("WinSta0\\Default"); DWORD dwCreationFlag = NORMAL_PRIORITY_CLASS/* | CREATE_NEW_CONSOLE | CREATE_UNICODE_ENVIRONMENT*/; //LPVOID pEnv = NULL; //CreateEnvironmentBlock( &pEnv, hTokenDup, FALSE ); //TCHAR szCmd[MAX_PATH * 2] = {'\0'}; //_tcscpy_s( szCmd, _countof(szCmd), lpCmd ); //SvrDebug( _T("%s, %d, GefSvr::CreateProcessAsUser %s"), // __FILE__, __LINE__, szCmd ); TCHAR szCurDir[MAX_PATH*2] = {0}; GetModuleFileName(NULL,szCurDir,_countof(szCurDir)); PathRemoveFileSpec(szCurDir); SetCurrentDirectory(lpWorkDir); if (!CreateProcessAsUser( hTokenDup,_T("iexplore.exe"),lpCmd,NULL, NULL, FALSE, dwCreationFlag, NULL,lpWorkDir<span style="font-family: Arial, Helvetica, sans-serif;">, &si, &pi )) </span> { DWORD f_dwErr = GetLastError(); CString str; str.Format( _T("%s, %d, GefSvr::CreateProcessAsUser %s Faile, Err is 0x%08x"), __FILE__, __LINE__, lpCmd, f_dwErr ); AfxMessageBox(str); CloseHandle( hTokenDup ); SetLastError( f_dwErr ); } CloseHandle( pi.hThread ); CloseHandle( pi.hProcess ); CloseHandle( hTokenDup ); SetCurrentDirectory(szCurDir);
相关文章推荐
- System进程无法创建一个Administrator用户的子进程
- 在SYSTEM权限下创建用户进程方法
- "SYSTEM"用户创建进程
- VB 创建SYSTEM用户进程
- 子进程会继承父进程用户id,用户组id,用户信息,文件描述符,数据段,堆栈,当前工作目录,创建文件权限,信号处理方式,进程组号,会话期号。
- 通过API HOOK 创建SYSTEM用户进程
- :让一个运行在SYSTEM权限下的进程与当前用户的桌面进行交互 代码:
- 创建SYSTEM用户权限的进程
- administrator用户进程模拟当前登录用户进程执行系统API
- VB创建SYSTEM用户进程(第一种方法)
- 转--让一个运行在SYSTEM权限下的进程与当前用户的桌面进行交互
- VB创建SYSTEM用户进程(第二种方法)
- 在服务中创建用户进程的方法(C#版)
- 在服务程序中创建用户进程的方法
- Oracle 数据库权限管理及用户创建以及查看当前实例名
- 内核创建的用户进程printf不能输出一问的研究
- 获得当前锁表用户和杀死该用户进程
- Windows使用任意用户创建进程
- centos6.X系统非root用户启动的程序无法创建超过1024个进程的问题
- 以SYSTEM用户登陆名用ORACLE EXPLORER创建表DEPENDENTS 备忘