From ff55be46b69947e6f59db5c54c98d858b81dc889 Mon Sep 17 00:00:00 2001 From: de4dot Date: Sun, 12 Feb 2012 12:53:36 +0100 Subject: [PATCH] Rename getField() to getFieldByName() and add a real getField() method --- blocks/DotNetUtils.cs | 12 +++++++++++- de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/blocks/DotNetUtils.cs b/blocks/DotNetUtils.cs index 5441e20f..bc89adc9 100644 --- a/blocks/DotNetUtils.cs +++ b/blocks/DotNetUtils.cs @@ -472,7 +472,17 @@ namespace de4dot.blocks { return null; } - public static FieldDefinition getField(TypeDefinition type, string name) { + public static FieldDefinition getField(TypeDefinition type, string typeFullName) { + if (type == null) + return null; + foreach (var field in type.Fields) { + if (field.FieldType.FullName == typeFullName) + return field; + } + return null; + } + + public static FieldDefinition getFieldByName(TypeDefinition type, string name) { if (type == null) return null; foreach (var field in type.Fields) { diff --git a/de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs b/de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs index 0677f8d7..cfa2b9f3 100644 --- a/de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs @@ -156,7 +156,7 @@ namespace de4dot.code.deobfuscators.Babel_NET { } void checkVersion(TypeDefinition attr) { - var versionField = DotNetUtils.getField(attr, "Version"); + var versionField = DotNetUtils.getFieldByName(attr, "Version"); if (versionField != null && versionField.IsLiteral && versionField.Constant != null && versionField.Constant is string) { var val = Regex.Match((string)versionField.Constant, @"^(\d+\.\d+\.\d+\.\d+)$"); if (val.Groups.Count < 2)