PSAttackBuildTool.ObfuscationEngine.ObfuscationEngine.ProcessScript C# (CSharp) Method

ProcessScript() public method

public ProcessScript ( Display display, string scriptPath ) : string
display PSAttackBuildTool.Utils.Display
scriptPath string
return string
        public string ProcessScript(Display display, string scriptPath)
        {
            string originalFileName = Path.GetFileName(scriptPath);
            string obfuscatedScriptPath = Path.Combine(Strings.obfuscatedScriptsDir, Path.GetFileName(scriptPath));
            string readScript = File.ReadAllText(scriptPath);
            string modifiedScript = "";

            // Process Rules
            foreach (Ruleset ruleset in this.Rulesets)
            {
                if (ruleset.Type == "PowerShell")
                {
                    if (originalFileName.ToLower().Contains(ruleset.FileName.ToLower()) || ruleset.FileName == "#ALL")
                    {
                        foreach (Rule rule in ruleset.Rules)
                        {
                            readScript = RuleProcessor(display, rule, readScript);
                        }
                    }
                }

            }

            // Implicit Randomize Text Case Rule
            if (this.RandomizeText == true)
            {
                display.updateStatus("Running Rule: Randomize Text Case");
                Random rand = new Random();
                foreach (char c in readScript.ToCharArray())
                {
                    int i = rand.Next(int.MaxValue) % 2;
                    char modifiedChar = new Char();
                    modifiedChar = Char.ToLower(c);
                    if (i == 1)
                    {
                        modifiedChar = Char.ToUpper(c);

                    }
                    modifiedScript += modifiedChar;
                }
            }
            else
            {
                modifiedScript = readScript;
            }

            File.WriteAllText(obfuscatedScriptPath, modifiedScript);
            return obfuscatedScriptPath;
        }