public override void OnRun(TuringSocket socket, TuringAgentArgs e) { // Create client using (TcpClient ret = new TcpClient()) { // Try connect to server IAsyncResult result = ret.BeginConnect(ConnectTo.Address, ConnectTo.Port, null, null); bool success = result.AsyncWaitHandle.WaitOne(ConnectTimeout); ret.EndConnect(result); if (!success) { return; } // Flag as connected ConnectedOk = true; // Fuzzer stream using (TuringStream stream = new TuringStream(socket)) try { //Try send all we can using (Stream sr = ret.GetStream()) { stream.CopyTo(sr); sr.Flush(); } } catch //(Exception e) { } } }
public void OnRun(TuringSocket socket, TuringAgentArgs e) { var ret = (Core.Detectors.Multi.OutputErrorProcessDetector)socket[ProcessPid]; // Fuzzer stream using (var stream = new TuringStream(socket)) try { var data = new byte[4096]; var cdata = new char[data.Length]; // Try send all we can while (true) { var r = stream.Read(data, 0, data.Length); if (r > 0) { for (var x = 0; x < r; x++) { cdata[x] = (char)data[x]; } foreach (var process in ret.Process) { process.StandardInput.Write(cdata, 0, cdata.Length); process.StandardInput.Flush(); } } else { break; } } } catch //(Exception e) { } }