public void AddChild(Grunt grunt) { if (!string.IsNullOrWhiteSpace(grunt.GUID)) { this.Children.Add(grunt.GUID); } }
public string Compile(GruntTask task, Grunt grunt, List <string> Parameters) { this.TokenTask = task.TokenTask; List <Compiler.Reference> references = Common.DefaultReferences; task.ReferenceAssemblies.ForEach(RA => { references.AddRange( new List <Compiler.Reference> { new Compiler.Reference { File = RA, Framework = Common.DotNetVersion.Net35, Enabled = true }, new Compiler.Reference { File = RA, Framework = Common.DotNetVersion.Net40, Enabled = true } } ); }); List <Compiler.EmbeddedResource> resources = task.EmbeddedResources.Select(ER => { return(new Compiler.EmbeddedResource { Name = ER, File = ER, Platform = Platform.X64, Enabled = true }); }).ToList(); byte[] compiled = Compiler.Compile(new Compiler.CompilationRequest { Source = task.Code, SourceDirectory = task.ReferenceSourceLibraries == null || task.ReferenceSourceLibraries.Count == 0 ? null : Common.CovenantSrcDirectory + Path.DirectorySeparatorChar + task.ReferenceSourceLibraries[0], ResourceDirectory = Common.CovenantResourceDirectory, ReferenceDirectory = Common.CovenantReferenceDirectory, TargetDotNetVersion = grunt.DotNetFrameworkVersion, References = references, EmbeddedResources = resources, UnsafeCompile = task.UnsafeCompile, Confuse = true, // TODO: Fix optimization to work with GhostPack Optimize = !task.ReferenceSourceLibraries.Contains("Rubeus") && !task.ReferenceSourceLibraries.Contains("SharpDPAPI") && !task.ReferenceSourceLibraries.Contains("SharpUp") && !task.ReferenceSourceLibraries.Contains("Seatbelt") }); this.TaskingMessage = Convert.ToBase64String(Utilities.Compress(compiled)); foreach (string Parameter in Parameters) { this.TaskingMessage += "," + Convert.ToBase64String(Common.CovenantEncoding.GetBytes(Parameter)); } return(this.TaskingMessage); }
public bool RemoveChild(Grunt grunt) { return(this.Children.Remove(grunt.GUID)); }