public override void deobfuscateBegin() { base.deobfuscateBegin(); proxyDelegateFinder = new ProxyDelegateFinder(module); proxyDelegateFinder.find(); localsRestorer = new LocalsRestorer(module); if (options.RestoreLocals) { localsRestorer.find(); } logicalExpressionFixer = new LogicalExpressionFixer(); stringDecrypter.initialize(); integerDecrypter.initialize(); arrayDecrypter.initialize(); if (options.DecryptIntegers) { int32ValueInliner = new Int32ValueInliner(); foreach (var method in integerDecrypter.getMethods()) { int32ValueInliner.add(method, (method2, args) => { return(integerDecrypter.decrypt(method2)); }); } } if (options.DecryptArrays) { arrayValueInliner = new ArrayValueInliner(module, initializedDataCreator); foreach (var method in arrayDecrypter.getMethods()) { arrayValueInliner.add(method, (method2, args) => { return(arrayDecrypter.decrypt(method2)); }); } } foreach (var method in stringDecrypter.getMethods()) { staticStringInliner.add(method, (method2, args) => { return(stringDecrypter.decrypt(method2)); }); DeobfuscatedFile.stringDecryptersAdded(); } if (options.RemoveAntiStrongName) { addTypeToBeRemoved(strongNameChecker.Type, "Strong name checker type"); } startedDeobfuscating = true; }
public override void DeobfuscateBegin() { base.DeobfuscateBegin(); proxyCallFixer = new ProxyCallFixer(module); proxyCallFixer.Find(); localsRestorer = new LocalsRestorer(module); if (options.RestoreLocals) localsRestorer.Find(); logicalExpressionFixer = new LogicalExpressionFixer(); stringDecrypter.Initialize(); integerDecrypter.Initialize(); arrayDecrypter.Initialize(); if (options.DecryptIntegers) { int32ValueInliner = new Int32ValueInliner(); foreach (var method in integerDecrypter.GetMethods()) { int32ValueInliner.Add(method, (method2, gim, args) => { return integerDecrypter.Decrypt(method2); }); } } if (options.DecryptArrays) { arrayValueInliner = new ArrayValueInliner(module, initializedDataCreator); foreach (var method in arrayDecrypter.GetMethods()) { arrayValueInliner.Add(method, (method2, gim, args) => { return arrayDecrypter.Decrypt(method2); }); } } foreach (var method in stringDecrypter.GetMethods()) { staticStringInliner.Add(method, (method2, gim, args) => { return stringDecrypter.Decrypt(method2); }); DeobfuscatedFile.StringDecryptersAdded(); } if (options.RemoveAntiStrongName) AddTypeToBeRemoved(strongNameChecker.Type, "Strong name checker type"); startedDeobfuscating = true; }