Example #1
0
        public IToolResults Run(TimeSpan longest)
        {
            string cmd;

            cmd = (_options.IsHTTPS ? "https://" : "http://") + _options.Host + ":" + _options.Port;

            Guid uid = Guid.NewGuid();

            cmd += " -m \"-blindsql\" -f xml -o \"/tmp/wapiti_" + uid.ToString() + ".xml\"";

            ProcessStartInfo si = new ProcessStartInfo();

            si.RedirectStandardOutput = true;
            si.UseShellExecute        = false;

            Process proc = new Process();

            proc.StartInfo           = si;
            proc.EnableRaisingEvents = false;
            proc.StartInfo.FileName  = _options.Path;
            proc.StartInfo.Arguments = cmd;
            proc.Start();

            DateTime start = DateTime.Now;

            proc.StandardOutput.ReadToEnd();

            //while (!proc.HasExited)
            //{
            //	if ((DateTime.Now - start) > longest)
            //	{
            //		Console.WriteLine("Killing wapiti, taking too long");
            //		proc.Kill();
            //		return null;
            //	}
            //}

            WapitiToolResults results = WapitiToolResults.Parse("/tmp/wapiti_" + uid.ToString() + ".xml") as WapitiToolResults;

            results.FullOutput = System.IO.File.ReadAllText("/tmp/wapiti_" + uid.ToString() + ".xml");

            return(results);
        }