void InitializeTheRest(Deobfuscator oldOne) { resourceDecrypter = new ResourceDecrypter(module, DeobfuscatedFile); resourceDecrypter.Find(); constantsDecrypterV18 = new ConstantsDecrypterV18(module, GetFileData(), DeobfuscatedFile); constantsDecrypterV17 = new ConstantsDecrypterV17(module, GetFileData(), DeobfuscatedFile); constantsDecrypterV15 = new ConstantsDecrypterV15(module, GetFileData(), DeobfuscatedFile); do { constantsDecrypterV18.Find(); if (constantsDecrypterV18.Detected) { InitializeConstantsDecrypterV18(); break; } constantsDecrypterV17.Find(); if (constantsDecrypterV17.Detected) { InitializeConstantsDecrypterV17(); break; } constantsDecrypterV15.Find(); if (constantsDecrypterV15.Detected) { InitializeConstantsDecrypterV15(); break; } } while (false); proxyCallFixer = new ProxyCallFixer(module, GetFileData()); proxyCallFixer.FindDelegateCreator(DeobfuscatedFile); antiDebugger = new AntiDebugger(module); antiDebugger.Find(); antiDumping = new AntiDumping(module); antiDumping.Find(DeobfuscatedFile); stringDecrypter = new StringDecrypter(module); stringDecrypter.Find(DeobfuscatedFile); InitializeStringDecrypter(); unpacker = new Unpacker(module, oldOne == null ? null : oldOne.unpacker); unpacker.Find(DeobfuscatedFile, this); InitializeObfuscatorName(); }
public Unpacker(ModuleDefMD module, Unpacker other) { this.module = module; if (other != null) this.version = other.version; }