예제 #1
0
        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();
        }
예제 #2
0
		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();
		}