Ejemplo n.º 1
0
 public void AddChild(Grunt grunt)
 {
     if (!string.IsNullOrWhiteSpace(grunt.GUID))
     {
         this.Children.Add(grunt.GUID);
     }
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public bool RemoveChild(Grunt grunt)
 {
     return(this.Children.Remove(grunt.GUID));
 }