public void ExecuteObfuscations(string param) { Code = param; var shit = param.ToCharArray().ToList(); Stopwatch watch = new Stopwatch(); watch.Start(); foreach (var v in shit) { int i = int.Parse(v.ToString()) - 1; Logger.LogMessage("Executing ", Obfuscations[i], ConsoleColor.Magenta); Type type = OwnAssembly.GetTypes().First(x => x.Name == Obfuscations[i]); var instance = Activator.CreateInstance(type); MethodInfo info = type.GetMethod("Execute"); try { info.Invoke(instance, new object[] { Module }); } catch (Exception ex) { Console.WriteLine(ex); } } watch.Stop(); Console.WriteLine("Time taken: " + watch.Elapsed.ToString()); }
public void Save() { Watermark(); Logger.LogMessage("Saving as ", Path + "obfuscated.exe", ConsoleColor.Yellow); ModuleWriterOptions opts = new ModuleWriterOptions(Module); opts.Logger = DummyLogger.NoThrowInstance; //Testing opts.PEHeadersOptions.NumberOfRvaAndSizes = 13; opts.MetaDataOptions.TablesHeapOptions.ExtraData = 0x12345678; int classnumber = RuntimeHelper.Random.Next(75, 100); for (int i = 0; i < classnumber; i++) { opts.MetaDataOptions.OtherHeaps.Add(new MyHeap(Renamer.GetRandomName())); } int ii = 7; Type typex = OwnAssembly.GetTypes().First(x => x.Name == Obfuscations[ii]); var instance = Activator.CreateInstance(typex); MethodInfo infod = typex.GetMethod("AddFakeClasses"); try { infod.Invoke(instance, new object[] { Module }); } catch (Exception ex) { Console.WriteLine(ex); } Assembly.Write(Path + "obfuscated.exe", opts); Console.WriteLine("Saved."); }
public override IEnumerable <Type> GetEventClasses() { return(OwnAssembly .GetTypes() .Where(t => string.Equals(t.Namespace, "StardewModdingAPI.Events", StringComparison.Ordinal))); }