Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }