private void MergeAntiDebug(AssemblyDef target) { string code = Resources.AntiDebugNetCode(); Compiler compiler = new Compiler(); compiler.ReferencedAssemblies.Add("System.dll"); var antiDebug = AssemblyDef.Compile(compiler, code); target.Merge(antiDebug); var method = target.Find <MethodDef>("AntiDebug.Code.AntiDebug::Start.*", true); // Call AntiDebug::Start at module initializer target.CallAtModuleInitializer(method); }
private void MergeLicensingCode(AssemblyDef target) { // Merge decryption code string code = Resources.LicenseFileCheckWinFormCode(); Compiler compiler = new Compiler(); compiler.ReferencedAssemblies.Add("System.dll"); compiler.ReferencedAssemblies.Add("System.Windows.Forms.dll"); compiler.ReferencedAssemblies.Add(@".\Babel.Licensing.dll"); var licensing = AssemblyDef.Compile(compiler, code); target.Merge(licensing, true); var method = target.Find <MethodDef>(".*::ValidateLicense.*", true); // Call license validation at module initializer target.CallAtModuleInitializer(method); }