diff --git a/blocks/DotNetUtils.cs b/blocks/DotNetUtils.cs index c4f121f3..98868692 100644 --- a/blocks/DotNetUtils.cs +++ b/blocks/DotNetUtils.cs @@ -754,11 +754,11 @@ namespace de4dot.blocks { } } - public static IEnumerable findAttributes(AssemblyDefinition asm, TypeReference attr) { + public static IEnumerable findAttributes(ICustomAttributeProvider custAttrProvider, TypeReference attr) { var list = new List(); - if (asm == null) + if (custAttrProvider == null) return list; - foreach (var cattr in asm.CustomAttributes) { + foreach (var cattr in custAttrProvider.CustomAttributes) { if (MemberReferenceHelper.compareTypes(attr, cattr.AttributeType)) list.Add(cattr); } diff --git a/de4dot.code/deobfuscators/DeobfuscatorBase.cs b/de4dot.code/deobfuscators/DeobfuscatorBase.cs index 63943cb6..90f15741 100644 --- a/de4dot.code/deobfuscators/DeobfuscatorBase.cs +++ b/de4dot.code/deobfuscators/DeobfuscatorBase.cs @@ -691,6 +691,11 @@ namespace de4dot.code.deobfuscators { return list.Count == 0 ? null : list[0]; } + protected CustomAttribute getModuleAttribute(TypeReference attr) { + var list = new List(DotNetUtils.findAttributes(module, attr)); + return list.Count == 0 ? null : list[0]; + } + protected bool hasMetadataStream(string name) { foreach (var stream in module.MetadataStreams) { if (stream.Name == name)