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;
}