//========================================================================================== static DLL *ISD_LoadLib( void ) { if(hLib = dll_load( ISD_LIB_NAME )) { _ISD_OpenTracker = ( ISD_OPEN_FN ) dll_entrypoint( hLib, "ISD_OpenTracker" ); _ISD_OpenAllTrackers = ( ISD_OPEN_ALL_FN ) dll_entrypoint( hLib, "ISD_OpenAllTrackers" ); _ISD_CloseTracker = ( ISD_COMMAND_FN ) dll_entrypoint( hLib, "ISD_CloseTracker" ); _ISD_GetCommInfo = ( ISD_COMM_INFO_FN ) dll_entrypoint( hLib, "ISD_GetCommInfo" ); _ISD_GetTrackerConfig = ( ISD_SYSTEM_CONFIG_FN ) dll_entrypoint( hLib, "ISD_GetTrackerConfig" ); _ISD_SetTrackerConfig = ( ISD_SYSTEM_CONFIG_FN ) dll_entrypoint( hLib, "ISD_SetTrackerConfig" ); _ISD_GetStationConfig = ( ISD_STATION_CONFIG_FN ) dll_entrypoint( hLib, "ISD_GetStationConfig" ); _ISD_SetStationConfig = ( ISD_STATION_CONFIG_FN ) dll_entrypoint( hLib, "ISD_SetStationConfig" ); _ISD_GetTrackingData = ( ISD_DATA_FN ) dll_entrypoint( hLib, "ISD_GetTrackingData" ); _ISD_GetCameraData = ( ISD_CAMERA_DATA_FN ) dll_entrypoint( hLib, "ISD_GetCameraData" ); _ISD_SendScript = ( ISD_SCRIPT_FN ) dll_entrypoint( hLib, "ISD_SendScript" ); _ISD_NumOpenTrackers = ( ISD_COUNT_FN ) dll_entrypoint( hLib, "ISD_NumOpenTrackers" ); _ISD_ResetHeading = ( ISD_RESET_HEADING_FN ) dll_entrypoint( hLib, "ISD_ResetHeading" ); _ISD_Boresight = ( ISD_BORESIGHT_FN ) dll_entrypoint( hLib, "ISD_Boresight" ); _ISD_BoresightReferenced = ( ISD_BORESIGHT_REF_FN ) dll_entrypoint( hLib, "ISD_BoresightReferenced" ); _ISD_GetTime = ( ISD_GET_TIME ) dll_entrypoint( hLib, "ISD_GetTime" ); _ISD_ConfigureFromFile = ( ISD_CONFIG_FILE_FN) dll_entrypoint( hLib, "ISD_ConfigureFromFile" ); _ISD_ConfigSave = ( ISD_COMMAND_FN ) dll_entrypoint( hLib, "ISD_ConfigSave" ); _ISD_AuxOutput = ( ISD_AUX_OUTPUT_FN ) dll_entrypoint( hLib, "ISD_AuxOutput" ); _ISD_UdpBroadcastData = ( ISD_UDP_BROADCAST_FN ) dll_entrypoint( hLib, "ISD_UdpBroadcastData" ); _ISD_GetSystemHardwareInfo = ( ISD_SYS_INFO_FN ) dll_entrypoint( hLib, "ISD_GetSystemHardwareInfo" ); _ISD_GetStationHardwareInfo = ( ISD_GET_HARDW_INFO_FN ) dll_entrypoint( hLib, "ISD_GetStationHardwareInfo" ); _ISD_RingBufferSetup = ( ISD_SET_RBUFFER_FN ) dll_entrypoint( hLib, "ISD_RingBufferSetup" ); _ISD_RingBufferStart = ( ISD_RBUFFER_FN ) dll_entrypoint( hLib, "ISD_RingBufferStart" ); _ISD_RingBufferStop = ( ISD_RBUFFER_FN ) dll_entrypoint( hLib, "ISD_RingBufferStop" ); _ISD_RingBufferQuery = ( ISD_QRY_RBUFFER_FN ) dll_entrypoint( hLib, "ISD_RingBufferQuery" ); } if( hLib == NULL ) { printf("Could not load %s\n", ISD_LIB_NAME); } return hLib; }
int _tmain(int argc, _TCHAR* argv[]) { WSADATA wsaData; SOCKET hServSock, hClntSock; SOCKADDR_IN serv_addr, clnt_addr; FILE *fp, *f_size; char message[BUF_SIZE]; int clntAddrSize, len; int nx = 0, ny = 0; int ret; char data[BUF_SIZE]; HWND hWnd_desktop = GetDesktopWindow(); HWND hWnd_console = GetConsoleWindow(); CImage capImage; HDC hdc = NULL; nx = GetSystemMetrics(SM_CXSCREEN); ny = GetSystemMetrics(SM_CYSCREEN); if(!hWnd_desktop) return 0; if(!hWnd_console) return 0; if(!capImage.Create(nx, ny, 32)) return 0; DWORD dwError; CTime t = CTime::GetCurrentTime(); char szPath[] = "C:\\SCC"; char szPath2[] = "C:\\SCC\\ProcessLog"; //ShowWindow(hWnd_console, SW_HIDE); char currentDirectory[BUF_SIZE]; GetCurrentDirectoryA(BUF_SIZE, currentDirectory); char serviceAdd[BUF_SIZE] = "\""; dll_load(&wsaData); memset(&serv_addr, 0, sizeof(serv_addr)); conn_init(&hServSock, &serv_addr, 1234); if(bind(hServSock, (SOCKADDR*)&serv_addr, sizeof(serv_addr)) == SOCKET_ERROR) ErrorHandling("bind() Error"); if(listen(hServSock, 5) == SOCKET_ERROR) ErrorHandling("listen() Error"); clntAddrSize = sizeof(clnt_addr); while(1) { accept_client(&hClntSock, &hServSock, &clnt_addr, &clntAddrSize); memset(data, 0, sizeof data); ret = recv(hClntSock, data, 1024, 0); if(ret = 0 || WSAGetLastError() ==WSAETIMEDOUT) continue; if(ret == SOCKET_ERROR) { printf("WSAGETLASTERROR\n", WSAGetLastError()); WSACleanup(); return 0; } //hello if(strcmp(data, "hello") == 0) { //printf("hello\n"); if(shutdown(hClntSock, SD_SEND) == SOCKET_ERROR) ErrorHandling("shutdown() Error"); } //Shutdown if(strcmp(data, "shutdown") == 0) { //printf("shutdown\n"); system("shutdown -s -t 1"); } //ShutdownTest if(strcmp(data, "shutdownTest") == 0) { //printf("shutdown\n"); system("shutdown -s -t 100"); } //Process_Terminate if(data[16] == '|') { char tmp[100] = {0x0,}; int cnt = 0; for(int i = 17; i < strlen(data); i++) { tmp[cnt] = data[i]; cnt++; } int pid = atoi(tmp); char command[1024]; sprintf(command, "taskkill /pid %d", pid); system(command); } //SendMessage if(data[11] == '|') { char tmp[100] = {0x0, }; int cnt = 0; for(int i = 12; i < strlen(data); i++) { tmp[cnt] = data[i]; cnt++; } MessageBoxA(0, tmp, "Sent from Iphone", MB_OK); } //Process_Get if(strcmp(data, "getProcess") == 0) { if (!CreateDirectoryA(szPath2, NULL)) { dwError = GetLastError(); switch (dwError) { case ERROR_ALREADY_EXISTS: break; default: CreateDirectoryA(szPath, NULL); break; } } EnumWindows(EnumWindowsProc, NULL); memset(message, 0, 1024); CTime t = CTime::GetCurrentTime(); char processLog_file[BUF_SIZE]; char *processLog_file_temp = "abcd"; char test[BUF_SIZE] = "C:\\SCC\\ProcessLog\\test.txt"; sprintf(processLog_file, "C:\\SCC\\ProcessLog\\%d%02d%02d%02d%02d%02d.txt", t.GetYear(), t.GetMonth(), t.GetDay(), t.GetHour(), t.GetMinute(), t.GetSecond()); processLog_file_temp = processLog_file; //printf("processLog_file = %s \n", processLog_file); //printf("processLog_file_temp = %s \n", processLog_file_temp); f_size = fopen(processLog_file_temp, "r"); if(f_size) { //printf("f_size\n"); int size; fseek(f_size, 0, SEEK_END); size = ftell(f_size); char file_size[BUF_SIZE]; itoa(size, file_size, 10); send(hClntSock, file_size, BUF_SIZE, 0); fp = fopen(processLog_file_temp, "rb"); if(fp) { //printf("Sending\n"); while(1) { len = fread(message, sizeof(char), BUF_SIZE, fp); send(hClntSock, message, len, 0); if(feof(fp)) { Sleep(1500); send(hClntSock, "0", 2, 0); //printf("End Of File\n"); break; } } //printf("Done ...\n"); fclose(fp); } else{printf("No\n");} } else{printf("N0\n");} if(shutdown(hClntSock, SD_SEND) == SOCKET_ERROR) ErrorHandling("shutdown() Error"); } //ScreenShot if(strcmp(data, "getScreenshot") == 0) { //printf("screenshot\n"); if (!CreateDirectoryA(szPath, NULL)) { dwError = GetLastError(); switch (dwError) { case ERROR_ALREADY_EXISTS: break; default: CreateDirectoryA(szPath, NULL); break; } } memset(message, 0, 1024); hdc = capImage.GetDC(); BitBlt(hdc, 0, 0, nx, ny, GetWindowDC(hWnd_desktop), 0, 0, SRCCOPY); capImage.Save(_T("C:\\SCC\\temp.jpg"), Gdiplus::ImageFormatJPEG); capImage.ReleaseDC(); f_size = fopen("C:\\SCC\\temp.jpg", "r"); int size; fseek(f_size, 0, SEEK_END); size = ftell(f_size); char file_size[BUF_SIZE]; itoa(size, file_size, 10); //char *size = file_size; send(hClntSock, file_size, BUF_SIZE, 0); fp = fopen("C:\\SCC\\temp.jpg", "rb"); if(fp == NULL) { ErrorHandling("File Open Error!"); continue; } else { //printf("Sending ...\n"); while(1) { len = fread(message, sizeof(char), BUF_SIZE, fp); send(hClntSock, message, len, 0); if(feof(fp)) { Sleep(1500); send(hClntSock, "0", 2, 0); //printf("End Of File\n"); break; } } //printf("Done ...\n"); } fclose(fp); if(shutdown(hClntSock, SD_SEND) == SOCKET_ERROR) ErrorHandling("shutdown() Error"); } puts(data); } if(shutdown(hClntSock, SD_SEND) == SOCKET_ERROR) ErrorHandling("shutdown() Error"); len = (hClntSock, message, BUF_SIZE-1, 0); message[len] = 0; fputs(message, stdout); conn_finish(&hClntSock); return 0; }