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); }
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()); }