Ejemplo n.º 1
0
        public void decrypt(ResourceDecrypter resourceDecrypter)
        {
            if (decryptMethod == null)
            {
                return;
            }

            resource = CoUtils.getResource(module, decrypterCctor);
            if (resource == null)
            {
                return;
            }
            var decrypted    = resourceDecrypter.decrypt(resource.GetResourceStream());
            var reader       = new BinaryReader(new MemoryStream(decrypted));
            int numEncrypted = reader.ReadInt32();

            Log.v("Restoring {0} encrypted methods", numEncrypted);
            Log.indent();
            for (int i = 0; i < numEncrypted; i++)
            {
                int  delegateTypeToken = reader.ReadInt32();
                uint codeOffset        = reader.ReadUInt32();
                var  origOffset        = reader.BaseStream.Position;
                reader.BaseStream.Position = codeOffset;
                decrypt(reader, delegateTypeToken);
                reader.BaseStream.Position = origOffset;
            }
            Log.deIndent();
        }
Ejemplo n.º 2
0
        public void init(ResourceDecrypter resourceDecrypter)
        {
            if (decrypterType == null)
            {
                return;
            }

            encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(DotNetUtils.getMethod(decrypterType, ".cctor")));
            constantsData     = resourceDecrypter.decrypt(encryptedResource.GetResourceStream());
        }
        public void init(ResourceDecrypter resourceDecrypter)
        {
            if (decrypterType == null)
            {
                return;
            }

            encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(decrypterType.FindStaticConstructor()));
            encryptedResource.Data.Position = 0;
            constantsData = resourceDecrypter.decrypt(encryptedResource.Data.CreateStream());
        }
Ejemplo n.º 4
0
        public void init(ResourceDecrypter resourceDecrypter)
        {
            if (decryptedData != null)
            {
                return;
            }

            var resourceName = getResourceName();

            stringResource = DotNetUtils.getResource(module, resourceName) as EmbeddedResource;
            if (stringResource == null)
            {
                return;
            }
            Log.v("Adding string decrypter. Resource: {0}", Utils.toCsharpString(stringResource.Name));

            decryptedData = resourceDecrypter.decrypt(stringResource.GetResourceStream());
        }
Ejemplo n.º 5
0
        public EmbeddedResource mergeResources()
        {
            if (mergedIt)
            {
                return(null);
            }

            var resource = DotNetUtils.getResource(module, getResourceNames()) as EmbeddedResource;

            if (resource == null)
            {
                return(null);
            }

            DeobUtils.decryptAndAddResources(module, resource.Name, () => resourceDecrypter.decrypt(resource.GetResourceStream()));
            mergedIt = true;
            return(resource);
        }
Ejemplo n.º 6
0
        public void init(ResourceDecrypter resourceDecrypter)
        {
            if (decryptedData != null)
                return;

            var resourceName = getResourceName();
            stringResource = DotNetUtils.getResource(module, resourceName) as EmbeddedResource;
            if (stringResource == null)
                return;
            Log.v("Adding string decrypter. Resource: {0}", Utils.toCsharpString(stringResource.Name));

            decryptedData = resourceDecrypter.decrypt(stringResource.GetResourceStream());
        }
        public void decrypt(ResourceDecrypter resourceDecrypter)
        {
            if (decryptMethod == null)
                return;

            resource = CoUtils.getResource(module, decrypterCctor);
            if (resource == null)
                return;
            var decrypted = resourceDecrypter.decrypt(resource.GetResourceStream());
            var reader = MemoryImageStream.Create(decrypted);
            int numEncrypted = reader.ReadInt32();
            Logger.v("Restoring {0} encrypted methods", numEncrypted);
            Logger.Instance.indent();
            for (int i = 0; i < numEncrypted; i++) {
                int delegateTypeToken = reader.ReadInt32();
                uint codeOffset = reader.ReadUInt32();
                var origOffset = reader.Position;
                reader.Position = codeOffset;
                decrypt(reader, delegateTypeToken);
                reader.Position = origOffset;
            }
            Logger.Instance.deIndent();
        }
Ejemplo n.º 8
0
        public void init(ResourceDecrypter resourceDecrypter)
        {
            if (decrypterType == null)
                return;

            encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(DotNetUtils.getMethod(decrypterType, ".cctor")));
            constantsData = resourceDecrypter.decrypt(encryptedResource.GetResourceStream());
        }
Ejemplo n.º 9
0
 void dumpEmbeddedFile(EmbeddedResource resource, string assemblyName, string extension, string reason)
 {
     DeobfuscatedFile.createAssemblyFile(resourceDecrypter.decrypt(resource.GetResourceStream()), Utils.getAssemblySimpleName(assemblyName), extension);
     addResourceToBeRemoved(resource, reason);
 }
        public void init(ResourceDecrypter resourceDecrypter)
        {
            if (decrypterType == null)
                return;

            encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(decrypterType.FindStaticConstructor()));
            encryptedResource.Data.Position = 0;
            constantsData = resourceDecrypter.decrypt(encryptedResource.Data.CreateStream());
        }