public override void deobfuscateBegin()
        {
            base.deobfuscateBegin();

            if (mainType.Detected)
            {
                if (methodsDecrypter.Detected)
                {
                    methodsDecrypter.decrypt();
                    addTypesToBeRemoved(methodsDecrypter.DelegateTypes, "Obfuscator method delegate type");
                    addResourceToBeRemoved(methodsDecrypter.Resource, "Encrypted methods resource");
                    addTypeToBeRemoved(mainType.InvokerDelegate, "Invoker delegate type");
                    addFieldToBeRemoved(mainType.InvokerInstanceField, "Invoker delegate instance field");
                    foreach (var pm in mainType.ProtectMethods)
                    {
                        addMethodToBeRemoved(pm, "Obfuscator 'Protect' init method");
                    }
                    mainType.cleanUp();
                }
                else
                {
                    Logger.w("New ILProtector version. Can't decrypt methods (yet)");
                }
            }
        }
Exemple #2
0
        public override void deobfuscateBegin()
        {
            base.deobfuscateBegin();

            methodsDecrypter.decrypt();
            addTypesToBeRemoved(methodsDecrypter.DelegateTypes, "Obfuscator method delegate type");
            addResourceToBeRemoved(methodsDecrypter.Resource, "Encrypted methods resource");
            addTypeToBeRemoved(mainType.InvokerDelegate, "Invoker delegate type");
            addFieldToBeRemoved(mainType.InvokerInstanceField, "Invoker delegate instance field");
            foreach (var pm in mainType.ProtectMethods)
            {
                addMethodToBeRemoved(pm, "Obfuscator 'Protect' init method");
                addModuleReferenceToBeRemoved(pm.PInvokeInfo.Module, "Obfuscator native protection file");
            }
            mainType.cleanUp();
        }