예제 #1
0
		public override void DeobfuscateMethodEnd(Blocks blocks) {
			proxyCallFixer.Deobfuscate(blocks);
			if (options.DecryptConstants) {
				int32ValueInliner.Decrypt(blocks);
				int64ValueInliner.Decrypt(blocks);
				singleValueInliner.Decrypt(blocks);
				doubleValueInliner.Decrypt(blocks);
				constantsDecrypter.Deobfuscate(blocks);
			}
			base.DeobfuscateMethodEnd(blocks);
		}
예제 #2
0
        public bool Deobfuscate(List <Block> allBlocks)
        {
            bool modified = false;

            foreach (var block in allBlocks)
            {
                modified |= int32ValueInliner.Decrypt(blocks.Method, allBlocks) != 0;
                modified |= int64ValueInliner.Decrypt(blocks.Method, allBlocks) != 0;
                modified |= singleValueInliner.Decrypt(blocks.Method, allBlocks) != 0;
                modified |= doubleValueInliner.Decrypt(blocks.Method, allBlocks) != 0;
            }
            return(modified);
        }
예제 #3
0
 public override void DeobfuscateMethodEnd(Blocks blocks)
 {
     if (proxyCallFixer != null)
     {
         proxyCallFixer.Deobfuscate(blocks);
     }
     resourceDecrypter.Deobfuscate(blocks);
     unpacker.Deobfuscate(blocks);
     if (int32ValueInliner != null)
     {
         int32ValueInliner.Decrypt(blocks);
         int64ValueInliner.Decrypt(blocks);
         singleValueInliner.Decrypt(blocks);
         doubleValueInliner.Decrypt(blocks);
     }
     base.DeobfuscateMethodEnd(blocks);
 }
예제 #4
0
 public override void DeobfuscateMethodEnd(Blocks blocks)
 {
     stringDecrypter.Deobfuscate(blocks);
     int32ValueInliner.Decrypt(blocks);
     arrayValueInliner.Decrypt(blocks);
     if (options.RestoreLocals)
     {
         localsRestorer.Deobfuscate(blocks);
     }
     if (options.RemoveAntiStrongName)
     {
         if (strongNameChecker.Deobfuscate(blocks))
         {
             Logger.v("Removed strong name checker code");
         }
     }
     logicalExpressionFixer.Deobfuscate(blocks);
     base.DeobfuscateMethodEnd(blocks);
 }
예제 #5
0
        public bool Deobfuscate(List <Block> allBlocks)
        {
            var modified = false;

            foreach (var block in allBlocks)
            {
                modified |= _sbyteValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _byteValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _int16ValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _uint16ValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _int32ValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _uint32ValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _int64ValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _uint64ValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _singleValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _doubleValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
                modified |= _arrayValueInliner.Decrypt(_blocks.Method, allBlocks) != 0;
            }
            return(modified);
        }