Esempio n. 1
0
        string GetResourceName()
        {
            var defaultName = module.Assembly.Name.String + module.Assembly.Name.String;

            var cctor = stringDecrypterType.FindStaticConstructor();

            if (cctor == null)
            {
                return(defaultName);
            }

            foreach (var s in DotNetUtils.GetCodeStrings(cctor))
            {
                if (DotNetUtils.GetResource(module, s) != null)
                {
                    return(s);
                }
                try {
                    return(Encoding.UTF8.GetString(Convert.FromBase64String(s)));
                }
                catch {
                    string s2 = CoUtils.DecryptResourceName(module, cctor);
                    try {
                        return(Encoding.UTF8.GetString(Convert.FromBase64String(s2)));
                    }
                    catch {
                    }
                }
            }

            return(defaultName);
        }
Esempio n. 2
0
        public void Initialize(ResourceDecrypter resourceDecrypter)
        {
            if (decrypterType == null)
            {
                return;
            }

            var cctor = decrypterType.FindStaticConstructor();

            encryptedResource = CoUtils.GetResource(module, DotNetUtils.GetCodeStrings(cctor));

            //if the return value is null, it is possible that resource name is encrypted
            if (encryptedResource == null)
            {
                var Resources = new string[] { CoUtils.DecryptResourceName(module, cctor) };
                encryptedResource = CoUtils.GetResource(module, Resources);
            }

            constantsData = resourceDecrypter.Decrypt(encryptedResource.GetReader().AsStream());
        }