Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STARTUPINFO cmdProcess;
- PROCESS_INFORMATION cmdInfo;
- char cmd[] = "whoami";
- char recvd[1048] = {0};
- HANDLE hSTD_OUT_READ;
- HANDLE hSTD_OUT_WRITE;
- HANDLE hSTD_IN_READ;
- HANDLE hSTD_IN_WRITE;
- void CmdPipe();
- void WriteInput();
- void ReadOutput();
- int main ()
- {
- CmdPipe();
- return 1;
- }
- void CmdPipe ()
- {
- BOOL bSUCCESS = FALSE;
- SECURITY_ATTRIBUTES saAttr;
- saAttr.nLength = sizeof(saAttr);
- saAttr.bInheritHandle = TRUE;
- saAttr.lpSecurityDescriptor = NULL;
- CreatePipe(&hSTD_OUT_READ,&hSTD_OUT_WRITE,&saAttr,0);
- SetHandleInformation(hSTD_OUT_READ, HANDLE_FLAG_INHERIT, 0);
- CreatePipe(&hSTD_IN_READ,&hSTD_IN_WRITE,&saAttr,0);
- SetHandleInformation(hSTD_IN_WRITE, HANDLE_FLAG_INHERIT, 0);
- memset(&cmdProcess,0,sizeof(cmdProcess));
- memset(&cmdInfo,0,sizeof(cmdInfo));
- cmdProcess.cb = sizeof(cmdProcess);
- cmdProcess.dwFlags = STARTF_USESTDHANDLES;
- cmdProcess.hStdError = hSTD_OUT_WRITE;
- cmdProcess.hStdOutput = hSTD_OUT_WRITE;
- cmdProcess.hStdInput = hSTD_IN_READ;
- CreateProcess(NULL,"cmd.exe",NULL,NULL,TRUE,0,NULL,NULL,&cmdProcess,&cmdInfo);
- WriteInput();
- ReadOutput();
- system("pause");
- }
- void ReadOutput()
- {
- DWORD dwRead, dwWritten;
- CHAR chBuf[512] = {0};
- BOOL bSuccess = FALSE;
- HANDLE hParentStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
- CloseHandle(hSTD_OUT_WRITE);
- for (;;)
- {
- bSuccess = ReadFile(hSTD_OUT_READ, chBuf, sizeof(chBuf), &dwRead, NULL);
- if( ! bSuccess || dwRead == 0 ) break;
- bSuccess = WriteFile(hParentStdOut, chBuf,
- dwRead, &dwWritten, NULL);
- if (! bSuccess ) break;
- }
- }
- void WriteInput()
- {
- DWORD dwRead, dwWritten;
- CHAR chBuf[512] = "whoami";
- BOOL bSuccess = FALSE;
- dwRead = 0;
- for (;;)
- {
- bSuccess = WriteFile(hSTD_IN_WRITE, chBuf, sizeof(chBuf), &dwWritten, NULL);
- if ( ! bSuccess ) break;
- }
- CloseHandle(hSTD_IN_WRITE);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement