From 6a7ddbaa562062fa9eca9c7701e3fbef18d10f49 Mon Sep 17 00:00:00 2001 From: de4dot Date: Fri, 16 Nov 2012 23:50:52 +0100 Subject: [PATCH] Update code; submodule was updated --- .../methodsrewriter/MethodsRewriter.cs | 2 +- blocks/Blocks.cs | 2 +- blocks/DotNetUtils.cs | 18 +++++----- blocks/GenericArgsSubstitutor.cs | 6 ++-- blocks/MemberDefDict.cs | 16 ++++----- blocks/cflow/MethodCallInliner.cs | 2 +- de4dot.code/ObfuscatedFile.cs | 8 ++--- .../Agile_NET/CliSecureRtType.cs | 2 +- .../vm/CilOperandInstructionRestorer.cs | 2 +- .../Agile_NET/vm/VmOpCodeHandlerDetector.cs | 6 ++-- .../Babel_NET/MemberReferenceConverter.cs | 2 +- .../CodeVeil/AssemblyResolver.cs | 4 +-- .../CodeVeil/InvalidMethodsFinder.cs | 2 +- .../CodeVeil/ResourceDecrypter.cs | 4 +-- .../deobfuscators/CodeVeil/TamperDetection.cs | 4 +-- .../deobfuscators/CodeWall/StringDecrypter.cs | 2 +- .../CryptoObfuscator/ConstantsDecrypter.cs | 2 +- .../CryptoObfuscator/MethodsDecrypter.cs | 4 +-- .../CryptoObfuscator/ProxyCallFixer.cs | 2 +- .../CryptoObfuscator/ResourceDecrypter.cs | 2 +- .../CryptoObfuscator/ResourceResolver.cs | 2 +- .../CryptoObfuscator/StringDecrypter.cs | 2 +- .../DeepSea/DsMethodCallInliner.cs | 4 +-- .../deobfuscators/DeepSea/FieldsRestorer.cs | 10 +++--- .../deobfuscators/DeepSea/StringDecrypter.cs | 18 +++++----- de4dot.code/deobfuscators/DeobUtils.cs | 4 +-- de4dot.code/deobfuscators/DeobfuscatorBase.cs | 4 +-- .../deobfuscators/InitializedDataCreator.cs | 4 +-- .../deobfuscators/InlinedMethodsFinder.cs | 2 +- de4dot.code/deobfuscators/MethodStack.cs | 2 +- .../deobfuscators/ProxyCallFixerBase.cs | 4 +-- .../deobfuscators/Rummage/StringDecrypter.cs | 4 +-- .../Skater_NET/StringDecrypter.cs | 2 +- .../Spices_Net/ResourceNamesRestorer.cs | 2 +- .../Spices_Net/SpicesMethodCallInliner.cs | 12 +++---- .../Spices_Net/StringDecrypter.cs | 6 ++-- de4dot.code/renamer/ResourceKeysRenamer.cs | 2 +- de4dot.code/renamer/TypeInfo.cs | 2 +- de4dot.code/renamer/TypeRenamerState.cs | 8 ++--- .../renamer/asmmodules/MemberRefFinder.cs | 34 +++++++++---------- de4dot.code/renamer/asmmodules/MethodDef.cs | 2 +- de4dot.code/renamer/asmmodules/Modules.cs | 16 ++++----- de4dot.code/renamer/asmmodules/TypeDef.cs | 4 +-- dot10 | 2 +- 44 files changed, 122 insertions(+), 122 deletions(-) diff --git a/AssemblyData/methodsrewriter/MethodsRewriter.cs b/AssemblyData/methodsrewriter/MethodsRewriter.cs index 7186c41d..e57e16f7 100644 --- a/AssemblyData/methodsrewriter/MethodsRewriter.cs +++ b/AssemblyData/methodsrewriter/MethodsRewriter.cs @@ -281,7 +281,7 @@ namespace AssemblyData.methodsrewriter { var mparams = getParameters(method.methodDef); if (mparams.Count > 0) { block.insert(n++, Instruction.Create(OpCodes.Ldc_I4, mparams.Count)); - var objectType = method.methodDef.DeclaringType.OwnerModule.CorLibTypes.Object; + var objectType = method.methodDef.DeclaringType.Module.CorLibTypes.Object; block.insert(n++, Instruction.Create(OpCodes.Newarr, objectType)); block.insert(n++, create(OpCodes.Stloc, new Operand(Operand.Type.TempObjArray))); diff --git a/blocks/Blocks.cs b/blocks/Blocks.cs index e59cd6a0..70c2a3d6 100644 --- a/blocks/Blocks.cs +++ b/blocks/Blocks.cs @@ -144,7 +144,7 @@ namespace de4dot.blocks { var defAsm = local.Type.DefinitionAssembly; if (defAsm == null) continue; // eg. fnptr - if (defAsm == method.DeclaringType.OwnerModule.Assembly) + if (defAsm == method.DeclaringType.Module.Assembly) continue; // this assembly is always loaded if (defAsm.IsCorLib()) continue; // mscorlib is always loaded diff --git a/blocks/DotNetUtils.cs b/blocks/DotNetUtils.cs index 3b558001..c28ee638 100644 --- a/blocks/DotNetUtils.cs +++ b/blocks/DotNetUtils.cs @@ -155,7 +155,7 @@ namespace de4dot.blocks { } public static MethodDef getModuleTypeCctor(ModuleDef module) { - return module.GlobalType.FindClassConstructor(); + return module.GlobalType.FindStaticConstructor(); } public static bool isEmpty(MethodDef method) { @@ -275,7 +275,7 @@ namespace de4dot.blocks { return false; if (method.ImplMap == null || method.ImplMap.Name.String != funcName) return false; - return getDllName(dll).Equals(getDllName(method.ImplMap.Scope.Name.String), StringComparison.OrdinalIgnoreCase); + return getDllName(dll).Equals(getDllName(method.ImplMap.Module.Name.String), StringComparison.OrdinalIgnoreCase); } #if PORT @@ -359,7 +359,7 @@ namespace de4dot.blocks { td = tr.Resolve(); } } - return td != null && td.OwnerModule == module ? td : null; + return td != null && td.Module == module ? td : null; } static MethodDef getMethod(ModuleDef module, IMethod method, ITypeDefOrRef declaringType) { @@ -540,16 +540,16 @@ namespace de4dot.blocks { // Copies most things but not everything public static MethodDef clone(MethodDef method) { - var newMethod = new MethodDefUser(method.Name, method.MethodSig, method.ImplFlags, method.Flags); + var newMethod = new MethodDefUser(method.Name, method.MethodSig, method.ImplAttributes, method.Attributes); newMethod.Rid = method.Rid; newMethod.DeclaringType2 = method.DeclaringType; foreach (var pd in method.ParamList) - newMethod.ParamList.Add(new ParamDefUser(pd.Name, pd.Sequence, pd.Flags)); - foreach (var gp in method.GenericParams) { + newMethod.ParamList.Add(new ParamDefUser(pd.Name, pd.Sequence, pd.Attributes)); + foreach (var gp in method.GenericParameters) { var newGp = new GenericParamUser(gp.Number, gp.Flags, gp.Name); foreach (var gpc in newGp.GenericParamConstraints) newGp.GenericParamConstraints.Add(new GenericParamConstraintUser(gpc.Constraint)); - newMethod.GenericParams.Add(newGp); + newMethod.GenericParameters.Add(newGp); } newMethod.Body = new CilBody(); copyBodyFromTo(method, newMethod); @@ -754,9 +754,9 @@ namespace de4dot.blocks { #endif public static string getCustomArgAsString(CustomAttribute cattr, int arg) { - if (cattr == null || arg >= cattr.Arguments.Count) + if (cattr == null || arg >= cattr.ConstructorArguments.Count) return null; - var carg = cattr.Arguments[arg]; + var carg = cattr.ConstructorArguments[arg]; if (carg.Type.GetElementType() != ElementType.String) return null; return UTF8String.ToSystemStringOrEmpty((UTF8String)carg.Value); diff --git a/blocks/GenericArgsSubstitutor.cs b/blocks/GenericArgsSubstitutor.cs index 04684dd1..d0afb210 100644 --- a/blocks/GenericArgsSubstitutor.cs +++ b/blocks/GenericArgsSubstitutor.cs @@ -60,8 +60,8 @@ namespace de4dot.blocks { var newSig = create(field.FieldSig, genericArgs); if (newSig == field.FieldSig) return field; - var ownerModule = field.DeclaringType != null ? field.DeclaringType.OwnerModule : null; - return new MemberRefUser(ownerModule, field.Name, newSig, field.DeclaringType); + var module = field.DeclaringType != null ? field.DeclaringType.Module : null; + return new MemberRefUser(module, field.Name, newSig, field.DeclaringType); } public static FieldSig create(FieldSig sig, GenericInstSig git) { @@ -141,7 +141,7 @@ namespace de4dot.blocks { if (newSig == sig) return method; - return new MemberRefUser(method.DeclaringType.OwnerModule, method.Name, newSig, method.DeclaringType); + return new MemberRefUser(method.DeclaringType.Module, method.Name, newSig, method.DeclaringType); } GenericArgsSubstitutor(IList genericArgs) { diff --git a/blocks/MemberDefDict.cs b/blocks/MemberDefDict.cs index 5fbb8725..96608395 100644 --- a/blocks/MemberDefDict.cs +++ b/blocks/MemberDefDict.cs @@ -90,7 +90,7 @@ namespace de4dot.blocks { 30, // NestedFamORAssem }; static int getAccessibilityOrder(TypeDef typeDef) { - return accessibilityOrder[(int)typeDef.Flags & 7]; + return accessibilityOrder[(int)typeDef.Attributes & 7]; } public void onTypesRenamed() { @@ -170,7 +170,7 @@ namespace de4dot.blocks { 70, // }; static int getAccessibilityOrder(FieldDef fieldDefinition) { - return accessibilityOrder[(int)fieldDefinition.Flags & 7]; + return accessibilityOrder[(int)fieldDefinition.Attributes & 7]; } public void onTypesRenamed() { @@ -262,7 +262,7 @@ namespace de4dot.blocks { 70, // }; static int getAccessibilityOrder(MethodDef methodDefinition) { - return accessibilityOrder[(int)methodDefinition.Flags & 7]; + return accessibilityOrder[(int)methodDefinition.Attributes & 7]; } public void onTypesRenamed() { @@ -422,23 +422,23 @@ namespace de4dot.blocks { readonly uint token; public ScopeAndTokenKey(TypeDef type) - : this(type.OwnerModule, type.MDToken.Raw) { + : this(type.Module, type.MDToken.Raw) { } public ScopeAndTokenKey(FieldDef field) - : this(field.DeclaringType == null ? null : field.DeclaringType.OwnerModule, field.MDToken.Raw) { + : this(field.DeclaringType == null ? null : field.DeclaringType.Module, field.MDToken.Raw) { } public ScopeAndTokenKey(MethodDef method) - : this(method.DeclaringType == null ? null : method.DeclaringType.OwnerModule, method.MDToken.Raw) { + : this(method.DeclaringType == null ? null : method.DeclaringType.Module, method.MDToken.Raw) { } public ScopeAndTokenKey(PropertyDef prop) - : this(prop.DeclaringType == null ? null : prop.DeclaringType.OwnerModule, prop.MDToken.Raw) { + : this(prop.DeclaringType == null ? null : prop.DeclaringType.Module, prop.MDToken.Raw) { } public ScopeAndTokenKey(EventDef evt) - : this(evt.DeclaringType == null ? null : evt.DeclaringType.OwnerModule, evt.MDToken.Raw) { + : this(evt.DeclaringType == null ? null : evt.DeclaringType.Module, evt.MDToken.Raw) { } public ScopeAndTokenKey(IScope scope, uint token) { diff --git a/blocks/cflow/MethodCallInliner.cs b/blocks/cflow/MethodCallInliner.cs index 41302459..17f209b7 100644 --- a/blocks/cflow/MethodCallInliner.cs +++ b/blocks/cflow/MethodCallInliner.cs @@ -41,7 +41,7 @@ namespace de4dot.blocks.cflow { } protected virtual bool canInline(MethodDef method) { - if (method.GenericParams.Count > 0) + if (method.GenericParameters.Count > 0) return false; if (method == blocks.Method) return false; diff --git a/de4dot.code/ObfuscatedFile.cs b/de4dot.code/ObfuscatedFile.cs index f2aa62c9..40905d98 100644 --- a/de4dot.code/ObfuscatedFile.cs +++ b/de4dot.code/ObfuscatedFile.cs @@ -678,13 +678,13 @@ namespace de4dot.code { static bool getMethodImplOptions(CustomAttribute cattr, ref int value) { if (cattr.IsRawBlob) return false; - if (cattr.Arguments.Count != 1) + if (cattr.ConstructorArguments.Count != 1) return false; - if (cattr.Arguments[0].Type.ElementType != ElementType.I2 && - cattr.Arguments[0].Type.FullName != "System.Runtime.CompilerServices.MethodImplOptions") + if (cattr.ConstructorArguments[0].Type.ElementType != ElementType.I2 && + cattr.ConstructorArguments[0].Type.FullName != "System.Runtime.CompilerServices.MethodImplOptions") return false; - var arg = cattr.Arguments[0].Value; + var arg = cattr.ConstructorArguments[0].Value; if (arg is short) { value = (short)arg; return true; diff --git a/de4dot.code/deobfuscators/Agile_NET/CliSecureRtType.cs b/de4dot.code/deobfuscators/Agile_NET/CliSecureRtType.cs index cb92be22..7ecf029e 100644 --- a/de4dot.code/deobfuscators/Agile_NET/CliSecureRtType.cs +++ b/de4dot.code/deobfuscators/Agile_NET/CliSecureRtType.cs @@ -135,7 +135,7 @@ namespace de4dot.code.deobfuscators.Agile_NET { continue; if (type.Methods.Count != 2) continue; - if (type.FindClassConstructor() == null) + if (type.FindStaticConstructor() == null) continue; var cs = type.FindMethod("cs"); if (cs == null) diff --git a/de4dot.code/deobfuscators/Agile_NET/vm/CilOperandInstructionRestorer.cs b/de4dot.code/deobfuscators/Agile_NET/vm/CilOperandInstructionRestorer.cs index 4a5e9d4d..2465201b 100644 --- a/de4dot.code/deobfuscators/Agile_NET/vm/CilOperandInstructionRestorer.cs +++ b/de4dot.code/deobfuscators/Agile_NET/vm/CilOperandInstructionRestorer.cs @@ -110,7 +110,7 @@ namespace de4dot.code.deobfuscators.Agile_NET.vm { case ElementType.Var: var gvar = (GenericVar)type; var dt = method.DeclaringType; - if (dt == null || gvar.Number >= dt.GenericParams.Count) + if (dt == null || gvar.Number >= dt.GenericParameters.Count) return false; break; diff --git a/de4dot.code/deobfuscators/Agile_NET/vm/VmOpCodeHandlerDetector.cs b/de4dot.code/deobfuscators/Agile_NET/vm/VmOpCodeHandlerDetector.cs index dafb6917..4d306ca9 100644 --- a/de4dot.code/deobfuscators/Agile_NET/vm/VmOpCodeHandlerDetector.cs +++ b/de4dot.code/deobfuscators/Agile_NET/vm/VmOpCodeHandlerDetector.cs @@ -109,7 +109,7 @@ namespace de4dot.code.deobfuscators.Agile_NET.vm { } bool isStackType(TypeDef type, TypeDef stackValueType) { - if (type.InterfaceImpls.Count != 2) + if (type.Interfaces.Count != 2) return false; if (!implementsInterface(type, "System.Collections.ICollection")) return false; @@ -141,7 +141,7 @@ namespace de4dot.code.deobfuscators.Agile_NET.vm { } static bool implementsInterface(TypeDef type, string ifaceName) { - foreach (var iface in type.InterfaceImpls) { + foreach (var iface in type.Interfaces) { if (iface.Interface.FullName == ifaceName) return true; } @@ -176,7 +176,7 @@ namespace de4dot.code.deobfuscators.Agile_NET.vm { }; var cflowDeobfuscator = new CflowDeobfuscator(); foreach (var type in module.Types) { - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null) continue; requiredFields[0] = type.FullName; diff --git a/de4dot.code/deobfuscators/Babel_NET/MemberReferenceConverter.cs b/de4dot.code/deobfuscators/Babel_NET/MemberReferenceConverter.cs index 2bdb6ff9..4c7ff56c 100644 --- a/de4dot.code/deobfuscators/Babel_NET/MemberReferenceConverter.cs +++ b/de4dot.code/deobfuscators/Babel_NET/MemberReferenceConverter.cs @@ -35,7 +35,7 @@ namespace de4dot.code.deobfuscators.Babel_NET { } bool isInOurModule(IMemberRef memberRef) { - return memberRef.OwnerModule == module; + return memberRef.Module == module; } Importer createImporter() { diff --git a/de4dot.code/deobfuscators/CodeVeil/AssemblyResolver.cs b/de4dot.code/deobfuscators/CodeVeil/AssemblyResolver.cs index eeade2dc..d4930136 100644 --- a/de4dot.code/deobfuscators/CodeVeil/AssemblyResolver.cs +++ b/de4dot.code/deobfuscators/CodeVeil/AssemblyResolver.cs @@ -305,9 +305,9 @@ namespace de4dot.code.deobfuscators.CodeVeil { if (!DotNetUtils.isMethod(newobjCtor, "System.Void", "(System.Reflection.Assembly,System.String)")) continue; var type = newobjCtor.DeclaringType; - if (type.InterfaceImpls.Count != 1) + if (type.Interfaces.Count != 1) continue; - if (type.InterfaceImpls[0].Interface != bundleStreamProviderIFace) + if (type.Interfaces[0].Interface != bundleStreamProviderIFace) continue; streamProviderType = type; diff --git a/de4dot.code/deobfuscators/CodeVeil/InvalidMethodsFinder.cs b/de4dot.code/deobfuscators/CodeVeil/InvalidMethodsFinder.cs index 7cce295f..b78569bb 100644 --- a/de4dot.code/deobfuscators/CodeVeil/InvalidMethodsFinder.cs +++ b/de4dot.code/deobfuscators/CodeVeil/InvalidMethodsFinder.cs @@ -46,7 +46,7 @@ namespace de4dot.code.deobfuscators.CodeVeil { if (retType.IsMethodVar) return retType.Number >= sig.GenParamCount; var dt = method.DeclaringType; - return dt == null || retType.Number >= dt.GenericParams.Count; + return dt == null || retType.Number >= dt.GenericParameters.Count; } } } diff --git a/de4dot.code/deobfuscators/CodeVeil/ResourceDecrypter.cs b/de4dot.code/deobfuscators/CodeVeil/ResourceDecrypter.cs index 2abb6036..29509ffa 100644 --- a/de4dot.code/deobfuscators/CodeVeil/ResourceDecrypter.cs +++ b/de4dot.code/deobfuscators/CodeVeil/ResourceDecrypter.cs @@ -183,7 +183,7 @@ namespace de4dot.code.deobfuscators.CodeVeil { } static bool hasInterface(TypeDef type, string interfaceFullName) { - foreach (var iface in type.InterfaceImpls) { + foreach (var iface in type.Interfaces) { if (iface.Interface.FullName == interfaceFullName) return true; } @@ -324,7 +324,7 @@ namespace de4dot.code.deobfuscators.CodeVeil { continue; Logger.v("Decrypted resource {0}", Utils.toCsharpString(resource.Name)); - module.Resources[i] = new EmbeddedResource(resource.Name, decrypted, resource.Flags); + module.Resources[i] = new EmbeddedResource(resource.Name, decrypted, resource.Attributes); } } diff --git a/de4dot.code/deobfuscators/CodeVeil/TamperDetection.cs b/de4dot.code/deobfuscators/CodeVeil/TamperDetection.cs index db49dee2..8577517d 100644 --- a/de4dot.code/deobfuscators/CodeVeil/TamperDetection.cs +++ b/de4dot.code/deobfuscators/CodeVeil/TamperDetection.cs @@ -56,7 +56,7 @@ namespace de4dot.code.deobfuscators.CodeVeil { foreach (var type in module.Types) { if (!type.HasNestedTypes) continue; - if ((type.Flags & ~TypeAttributes.Sealed) != 0) + if ((type.Attributes & ~TypeAttributes.Sealed) != 0) continue; if (!checkTamperDetectionClasses(type.NestedTypes)) @@ -92,7 +92,7 @@ namespace de4dot.code.deobfuscators.CodeVeil { bool isTamperDetectionClass(TypeDef type) { if (type.BaseType == null || type.BaseType.FullName != "System.Object") return false; - if ((type.Flags & ~TypeAttributes.Sealed) != TypeAttributes.NestedAssembly) + if ((type.Attributes & ~TypeAttributes.Sealed) != TypeAttributes.NestedAssembly) return false; MethodDef cctor = null, initMethod = null; diff --git a/de4dot.code/deobfuscators/CodeWall/StringDecrypter.cs b/de4dot.code/deobfuscators/CodeWall/StringDecrypter.cs index 9659447d..02016b69 100644 --- a/de4dot.code/deobfuscators/CodeWall/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/CodeWall/StringDecrypter.cs @@ -85,7 +85,7 @@ namespace de4dot.code.deobfuscators.CodeWall { } byte[] getPublicKeyToken() { - var module = method.OwnerModule; + var module = method.Module; if (module.Assembly == null || PublicKeyBase.IsNullOrEmpty2(module.Assembly.PublicKey)) return null; return module.Assembly.PublicKeyToken.Data; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ConstantsDecrypter.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ConstantsDecrypter.cs index e11a2abc..0a159641 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ConstantsDecrypter.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ConstantsDecrypter.cs @@ -107,7 +107,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator { if (decrypterType == null) return; - encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(decrypterType.FindClassConstructor())); + encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(decrypterType.FindStaticConstructor())); constantsData = resourceDecrypter.decrypt(encryptedResource.Data.CreateStream()); } diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/MethodsDecrypter.cs b/de4dot.code/deobfuscators/CryptoObfuscator/MethodsDecrypter.cs index b7111abd..452ee694 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/MethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/MethodsDecrypter.cs @@ -73,7 +73,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator { if (!new FieldTypes(type).all(requiredFields)) return false; - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null) return false; var decryptMethodTmp = findDecryptMethod(type); @@ -169,7 +169,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator { encMethodToken = 0; encDeclaringTypeToken = 0; - var cctor = delegateType.FindClassConstructor(); + var cctor = delegateType.FindStaticConstructor(); if (cctor == null) return false; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ProxyCallFixer.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ProxyCallFixer.cs index 97449d66..1d68495e 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ProxyCallFixer.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ProxyCallFixer.cs @@ -78,7 +78,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator { switch (ctx.proxyCreatorType) { case ProxyCreatorType.CallOrCallvirt: - callOpcode = field.IsFamORAssem ? OpCodes.Callvirt : OpCodes.Call; + callOpcode = field.IsFamilyOrAssembly ? OpCodes.Callvirt : OpCodes.Call; break; case ProxyCreatorType.CallCtor: callOpcode = OpCodes.Call; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs index 17092901..d0f5308c 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs @@ -84,7 +84,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator { if (!new FieldTypes(type).exactly(requiredTypes)) continue; - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null) continue; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceResolver.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceResolver.cs index 3a546a5b..6a75f9c7 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceResolver.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceResolver.cs @@ -108,7 +108,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator { resolverVersion = checkSetupMethod(initMethod); if (resolverVersion == ResolverVersion.None) - resolverVersion = checkSetupMethod(initMethod.DeclaringType.FindClassConstructor()); + resolverVersion = checkSetupMethod(initMethod.DeclaringType.FindStaticConstructor()); if (resolverVersion == ResolverVersion.None) return false; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/StringDecrypter.cs b/de4dot.code/deobfuscators/CryptoObfuscator/StringDecrypter.cs index 28905ac9..41ef5a78 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/StringDecrypter.cs @@ -76,7 +76,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator { string getResourceName() { var defaultName = module.Assembly.Name.String + module.Assembly.Name.String; - var cctor = stringDecrypterType.FindClassConstructor(); + var cctor = stringDecrypterType.FindStaticConstructor(); if (cctor == null) return defaultName; diff --git a/de4dot.code/deobfuscators/DeepSea/DsMethodCallInliner.cs b/de4dot.code/deobfuscators/DeepSea/DsMethodCallInliner.cs index b5082297..1fab08f5 100644 --- a/de4dot.code/deobfuscators/DeepSea/DsMethodCallInliner.cs +++ b/de4dot.code/deobfuscators/DeepSea/DsMethodCallInliner.cs @@ -298,9 +298,9 @@ done: public static bool canInline(MethodDef method) { if (method == null || method.Body == null) return false; - if (method.Flags != (MethodAttributes.Assembly | MethodAttributes.Static)) + if (method.Attributes != (MethodAttributes.Assembly | MethodAttributes.Static)) return false; - if (method.GenericParams.Count > 0) + if (method.GenericParameters.Count > 0) return false; if (method.Body.ExceptionHandlers.Count > 0) return false; diff --git a/de4dot.code/deobfuscators/DeepSea/FieldsRestorer.cs b/de4dot.code/deobfuscators/DeepSea/FieldsRestorer.cs index cef51edf..14073906 100644 --- a/de4dot.code/deobfuscators/DeepSea/FieldsRestorer.cs +++ b/de4dot.code/deobfuscators/DeepSea/FieldsRestorer.cs @@ -79,7 +79,7 @@ namespace de4dot.code.deobfuscators.DeepSea { var fieldsDict = new FieldDefinitionAndDeclaringTypeDict(); typeToFieldsDict.add(ownerType, fieldsDict); foreach (var structField in structType.Fields) { - var newField = module.UpdateRowId(new FieldDefUser(structField.Name, structField.FieldSig.Clone(), structField.Flags)); + var newField = module.UpdateRowId(new FieldDefUser(structField.Name, structField.FieldSig.Clone(), structField.Attributes)); ownerType.Fields.Add(newField); fieldsDict.add(structField, newField); } @@ -97,11 +97,11 @@ namespace de4dot.code.deobfuscators.DeepSea { continue; if (!checkBaseType(fieldType)) continue; - if ((fieldType.Flags & ~TypeAttributes.Sealed) != TypeAttributes.NestedAssembly) + if ((fieldType.Attributes & ~TypeAttributes.Sealed) != TypeAttributes.NestedAssembly) continue; if (fieldType.NestedTypes.Count > 0) continue; - if (fieldType.GenericParams.Count > 0) + if (fieldType.GenericParameters.Count > 0) continue; if (fieldType.Fields.Count == 0) continue; @@ -146,7 +146,7 @@ namespace de4dot.code.deobfuscators.DeepSea { IEnumerable getPossibleFields(TypeDef type) { var typeToFields = new TypeDefinitionDict>(); foreach (var field in type.Fields) { - if (field.Flags != FieldAttributes.Private) + if (field.Attributes != FieldAttributes.Private) continue; var fieldType = DotNetUtils.getType(module, field.FieldSig.GetFieldType()); if (fieldType == null) @@ -187,7 +187,7 @@ namespace de4dot.code.deobfuscators.DeepSea { continue; if (!method.IsStatic) return true; - if (method.GenericParams.Count > 0) + if (method.GenericParameters.Count > 0) return true; if (method.Body == null) return true; diff --git a/de4dot.code/deobfuscators/DeepSea/StringDecrypter.cs b/de4dot.code/deobfuscators/DeepSea/StringDecrypter.cs index 24a474b5..bb4a4180 100644 --- a/de4dot.code/deobfuscators/DeepSea/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/DeepSea/StringDecrypter.cs @@ -318,9 +318,9 @@ namespace de4dot.code.deobfuscators.DeepSea { } short[] findKey() { - if (cctor.OwnerModule.Assembly == null) + if (cctor.Module.Assembly == null) return null; - var pkt = cctor.OwnerModule.Assembly.PublicKeyToken; + var pkt = cctor.Module.Assembly.PublicKeyToken; if (!PublicKeyBase.IsNullOrEmpty2(pkt)) return getPublicKeyTokenKey(pkt.Data); return findKey(cctor); @@ -379,7 +379,7 @@ namespace de4dot.code.deobfuscators.DeepSea { public void cleanup() { arrayInfo.initField.InitialValue = new byte[1]; - arrayInfo.initField.FieldSig.Type = arrayInfo.initField.OwnerModule.CorLibTypes.Byte; + arrayInfo.initField.FieldSig.Type = arrayInfo.initField.Module.CorLibTypes.Byte; removeInitializeArrayCall(cctor, arrayInfo.initField); } } @@ -501,9 +501,9 @@ namespace de4dot.code.deobfuscators.DeepSea { } short[] findKey() { - if (cctor.OwnerModule.Assembly == null) + if (cctor.Module.Assembly == null) return null; - var pkt = cctor.OwnerModule.Assembly.PublicKeyToken; + var pkt = cctor.Module.Assembly.PublicKeyToken; if (!PublicKeyBase.IsNullOrEmpty2(pkt)) return getPublicKeyTokenKey(pkt.Data); return findKey(cctor); @@ -538,7 +538,7 @@ namespace de4dot.code.deobfuscators.DeepSea { public void cleanup() { encryptedDataField.InitialValue = new byte[1]; - encryptedDataField.FieldSig.Type = encryptedDataField.OwnerModule.CorLibTypes.Byte; + encryptedDataField.FieldSig.Type = encryptedDataField.Module.CorLibTypes.Byte; removeInitializeArrayCall(cctor, encryptedDataField); } } @@ -628,9 +628,9 @@ namespace de4dot.code.deobfuscators.DeepSea { } short[] findKey() { - if (cctor.OwnerModule.Assembly == null) + if (cctor.Module.Assembly == null) return null; - var pkt = cctor.OwnerModule.Assembly.PublicKeyToken; + var pkt = cctor.Module.Assembly.PublicKeyToken; if (!PublicKeyBase.IsNullOrEmpty2(pkt)) return getPublicKeyTokenKey(pkt.Data); return findKey(cctor); @@ -730,7 +730,7 @@ namespace de4dot.code.deobfuscators.DeepSea { var pkt = module.Assembly.PublicKeyToken; bool hasPublicKeyToken = !PublicKeyBase.IsNullOrEmpty2(pkt); foreach (var type in module.GetTypes()) { - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null) continue; diff --git a/de4dot.code/deobfuscators/DeobUtils.cs b/de4dot.code/deobfuscators/DeobUtils.cs index cf587320..b83a17ec 100644 --- a/de4dot.code/deobfuscators/DeobUtils.cs +++ b/de4dot.code/deobfuscators/DeobUtils.cs @@ -243,7 +243,7 @@ namespace de4dot.code.deobfuscators { var entryPoint = module.EntryPoint; if (entryPoint != null) { - cctor = entryPoint.DeclaringType.FindClassConstructor(); + cctor = entryPoint.DeclaringType.FindStaticConstructor(); if (cctor != null) yield return cctor; } @@ -251,7 +251,7 @@ namespace de4dot.code.deobfuscators { foreach (var type in module.GetTypes()) { if (type == module.GlobalType) continue; - cctor = type.FindClassConstructor(); + cctor = type.FindStaticConstructor(); if (cctor == null) continue; yield return cctor; diff --git a/de4dot.code/deobfuscators/DeobfuscatorBase.cs b/de4dot.code/deobfuscators/DeobfuscatorBase.cs index fa855f13..e3579fae 100644 --- a/de4dot.code/deobfuscators/DeobfuscatorBase.cs +++ b/de4dot.code/deobfuscators/DeobfuscatorBase.cs @@ -212,7 +212,7 @@ namespace de4dot.code.deobfuscators { foreach (var field in type.Fields) { if (field.IsStatic) continue; - field.IsRTSpecialName = true; + field.IsRuntimeSpecialName = true; field.IsSpecialName = true; } } @@ -377,7 +377,7 @@ namespace de4dot.code.deobfuscators { void deleteEmptyCctors() { var emptyCctorsToRemove = new List(); foreach (var type in module.GetTypes()) { - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor != null && DotNetUtils.isEmpty(cctor)) emptyCctorsToRemove.Add(cctor); } diff --git a/de4dot.code/deobfuscators/InitializedDataCreator.cs b/de4dot.code/deobfuscators/InitializedDataCreator.cs index a45b3b4f..72598d1f 100644 --- a/de4dot.code/deobfuscators/InitializedDataCreator.cs +++ b/de4dot.code/deobfuscators/InitializedDataCreator.cs @@ -67,7 +67,7 @@ namespace de4dot.code.deobfuscators { return; ourType = new TypeDefUser("", string.Format("{0}", getModuleId()), module.CorLibTypes.Object.TypeDefOrRef); - ourType.Flags = TypeAttributes.NotPublic | TypeAttributes.AutoLayout | + ourType.Attributes = TypeAttributes.NotPublic | TypeAttributes.AutoLayout | TypeAttributes.Class | TypeAttributes.AnsiClass; module.UpdateRowId(ourType); module.Types.Add(ourType); @@ -99,7 +99,7 @@ namespace de4dot.code.deobfuscators { valueType = DotNetUtils.findOrCreateTypeReference(module, module.CorLibTypes.AssemblyRef, "System", "ValueType", false); arrayType = new TypeDefUser("", string.Format("__StaticArrayInitTypeSize={0}", size), valueType.TypeDefOrRef); module.UpdateRowId(arrayType); - arrayType.Flags = TypeAttributes.NestedPrivate | TypeAttributes.ExplicitLayout | + arrayType.Attributes = TypeAttributes.NestedPrivate | TypeAttributes.ExplicitLayout | TypeAttributes.Class | TypeAttributes.Sealed | TypeAttributes.AnsiClass; ourType.NestedTypes.Add(arrayType); sizeToArrayType[size] = arrayType; diff --git a/de4dot.code/deobfuscators/InlinedMethodsFinder.cs b/de4dot.code/deobfuscators/InlinedMethodsFinder.cs index 50d79c81..2bcc386c 100644 --- a/de4dot.code/deobfuscators/InlinedMethodsFinder.cs +++ b/de4dot.code/deobfuscators/InlinedMethodsFinder.cs @@ -36,7 +36,7 @@ namespace de4dot.code.deobfuscators { continue; if (!method.IsAssembly && !method.IsPrivateScope && !method.IsPrivate) continue; - if (method.GenericParams.Count > 0) + if (method.GenericParameters.Count > 0) continue; if (method.Name == ".cctor") continue; diff --git a/de4dot.code/deobfuscators/MethodStack.cs b/de4dot.code/deobfuscators/MethodStack.cs index 1e80262b..8b853e32 100644 --- a/de4dot.code/deobfuscators/MethodStack.cs +++ b/de4dot.code/deobfuscators/MethodStack.cs @@ -161,7 +161,7 @@ namespace de4dot.code.deobfuscators { TypeSig type; Local local; - var corLibTypes = method.DeclaringType.OwnerModule.CorLibTypes; + var corLibTypes = method.DeclaringType.Module.CorLibTypes; switch (pushInstr.OpCode.Code) { case Code.Ldstr: type = corLibTypes.String; diff --git a/de4dot.code/deobfuscators/ProxyCallFixerBase.cs b/de4dot.code/deobfuscators/ProxyCallFixerBase.cs index aa8ac454..8a6227f4 100644 --- a/de4dot.code/deobfuscators/ProxyCallFixerBase.cs +++ b/de4dot.code/deobfuscators/ProxyCallFixerBase.cs @@ -209,7 +209,7 @@ namespace de4dot.code.deobfuscators { Logger.v("Finding all proxy delegates"); foreach (var tmp in getDelegateTypes()) { var type = tmp; - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null || !cctor.HasBody) continue; if (!type.HasFields) @@ -393,7 +393,7 @@ namespace de4dot.code.deobfuscators { protected void find2() { foreach (var type in getDelegateTypes()) { - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null || !cctor.HasBody) continue; if (!type.HasFields) diff --git a/de4dot.code/deobfuscators/Rummage/StringDecrypter.cs b/de4dot.code/deobfuscators/Rummage/StringDecrypter.cs index fabf8dd8..c390b03e 100644 --- a/de4dot.code/deobfuscators/Rummage/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/Rummage/StringDecrypter.cs @@ -96,7 +96,7 @@ namespace de4dot.code.deobfuscators.Rummage { static MethodDef checkType(TypeDef type) { if (!new FieldTypes(type).exactly(requiredFields)) return null; - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null) return null; if (!new LocalTypes(cctor).all(requiredLocals)) @@ -161,7 +161,7 @@ namespace de4dot.code.deobfuscators.Rummage { } void initType(TypeDef type) { - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null) return; var info = getStringInfo(cctor); diff --git a/de4dot.code/deobfuscators/Skater_NET/StringDecrypter.cs b/de4dot.code/deobfuscators/Skater_NET/StringDecrypter.cs index 7ed81d15..46dd681d 100644 --- a/de4dot.code/deobfuscators/Skater_NET/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/Skater_NET/StringDecrypter.cs @@ -97,7 +97,7 @@ namespace de4dot.code.deobfuscators.Skater_NET { if (type.HasProperties || type.HasEvents) continue; - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null) continue; diff --git a/de4dot.code/deobfuscators/Spices_Net/ResourceNamesRestorer.cs b/de4dot.code/deobfuscators/Spices_Net/ResourceNamesRestorer.cs index 0e370b8c..bc53fdaa 100644 --- a/de4dot.code/deobfuscators/Spices_Net/ResourceNamesRestorer.cs +++ b/de4dot.code/deobfuscators/Spices_Net/ResourceNamesRestorer.cs @@ -73,7 +73,7 @@ namespace de4dot.code.deobfuscators.Spices_Net { return false; if (type.HasProperties || type.HasEvents || type.HasFields) return false; - if (type.InterfaceImpls.Count > 0) + if (type.Interfaces.Count > 0) return false; var method = type.FindMethod("GetResourceFileName"); if (!DotNetUtils.isMethod(method, "System.String", "(System.Globalization.CultureInfo)")) diff --git a/de4dot.code/deobfuscators/Spices_Net/SpicesMethodCallInliner.cs b/de4dot.code/deobfuscators/Spices_Net/SpicesMethodCallInliner.cs index c7846fad..2822ac55 100644 --- a/de4dot.code/deobfuscators/Spices_Net/SpicesMethodCallInliner.cs +++ b/de4dot.code/deobfuscators/Spices_Net/SpicesMethodCallInliner.cs @@ -113,7 +113,7 @@ namespace de4dot.code.deobfuscators.Spices_Net { return false; if (!calledMethod.IsStatic) return false; - if (calledMethod.GenericParams.Count > 0) + if (calledMethod.GenericParameters.Count > 0) return false; if (calledMethod.Body == null || calledMethod.Body.Instructions.Count == 0) return false; @@ -154,17 +154,17 @@ namespace de4dot.code.deobfuscators.Spices_Net { static bool checkMethodsType(TypeDef type) { if (!type.IsNested) return false; - if ((type.Flags & ~TypeAttributes.BeforeFieldInit) != TypeAttributes.NestedAssembly) + if ((type.Attributes & ~TypeAttributes.BeforeFieldInit) != TypeAttributes.NestedAssembly) return false; if (type.HasProperties || type.HasEvents || type.HasFields || type.HasNestedTypes) return false; - if (type.GenericParams.Count > 0) + if (type.GenericParameters.Count > 0) return false; if (type.IsValueType || type.IsInterface) return false; if (type.BaseType == null || type.BaseType.FullName != "System.Object") return false; - if (type.InterfaceImpls.Count > 0) + if (type.Interfaces.Count > 0) return false; if (!checkMethods(type)) return false; @@ -185,11 +185,11 @@ namespace de4dot.code.deobfuscators.Spices_Net { foundCtor = true; continue; } - if (method.Flags != (MethodAttributes.Assembly | MethodAttributes.Static | MethodAttributes.HideBySig)) + if (method.Attributes != (MethodAttributes.Assembly | MethodAttributes.Static | MethodAttributes.HideBySig)) return false; if (method.ImplMap != null) return false; - if (method.GenericParams.Count > 0) + if (method.GenericParameters.Count > 0) return false; numMethods++; diff --git a/de4dot.code/deobfuscators/Spices_Net/StringDecrypter.cs b/de4dot.code/deobfuscators/Spices_Net/StringDecrypter.cs index af331300..9cd1ec0a 100644 --- a/de4dot.code/deobfuscators/Spices_Net/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/Spices_Net/StringDecrypter.cs @@ -64,7 +64,7 @@ namespace de4dot.code.deobfuscators.Spices_Net { return null; if (type.HasMethods || type.HasEvents || type.HasProperties || type.HasNestedTypes) return null; - if (type.InterfaceImpls.Count > 0) + if (type.Interfaces.Count > 0) return null; return type; @@ -95,13 +95,13 @@ namespace de4dot.code.deobfuscators.Spices_Net { continue; if (type.Fields.Count != 2) continue; - if ((type.Flags & ~TypeAttributes.Sealed) != 0) + if ((type.Attributes & ~TypeAttributes.Sealed) != 0) continue; if (type.BaseType == null || type.BaseType.FullName != "System.Object") continue; if (hasInstanceMethods(type)) continue; - var cctor = type.FindClassConstructor(); + var cctor = type.FindStaticConstructor(); if (cctor == null) continue; diff --git a/de4dot.code/renamer/ResourceKeysRenamer.cs b/de4dot.code/renamer/ResourceKeysRenamer.cs index ab0769bc..32bfee22 100644 --- a/de4dot.code/renamer/ResourceKeysRenamer.cs +++ b/de4dot.code/renamer/ResourceKeysRenamer.cs @@ -142,7 +142,7 @@ namespace de4dot.code.renamer { var outStream = new MemoryStream(); ResourceWriter.write(module, outStream, resourceSet); - var newResource = new EmbeddedResource(resource.Name, outStream.ToArray(), resource.Flags); + var newResource = new EmbeddedResource(resource.Name, outStream.ToArray(), resource.Attributes); int resourceIndex = module.Resources.IndexOf(resource); if (resourceIndex < 0) throw new ApplicationException("Could not find index of resource"); diff --git a/de4dot.code/renamer/TypeInfo.cs b/de4dot.code/renamer/TypeInfo.cs index 45771446..111da10b 100644 --- a/de4dot.code/renamer/TypeInfo.cs +++ b/de4dot.code/renamer/TypeInfo.cs @@ -403,7 +403,7 @@ namespace de4dot.code.renamer { string getPinvokeName(MMethodDef methodDef) { var entryPoint = methodDef.MethodDef.ImplMap.Name.String; if (Regex.IsMatch(entryPoint, @"^#\d+$")) - entryPoint = DotNetUtils.getDllName(methodDef.MethodDef.ImplMap.Scope.Name.String) + "_" + entryPoint.Substring(1); + entryPoint = DotNetUtils.getDllName(methodDef.MethodDef.ImplMap.Module.Name.String) + "_" + entryPoint.Substring(1); return entryPoint; } diff --git a/de4dot.code/renamer/TypeRenamerState.cs b/de4dot.code/renamer/TypeRenamerState.cs index ed40b1c8..aac24201 100644 --- a/de4dot.code/renamer/TypeRenamerState.cs +++ b/de4dot.code/renamer/TypeRenamerState.cs @@ -49,17 +49,17 @@ namespace de4dot.code.renamer { string newName; string asmFullName; - if (type.OwnerModule.Assembly != null) - asmFullName = type.OwnerModule.Assembly.FullName; + if (type.Module.Assembly != null) + asmFullName = type.Module.Assembly.FullName; else asmFullName = ""; // Make sure that two namespaces with the same names in different modules aren't renamed // to the same name. var key = string.Format(" [{0}] [{1}] [{2}] [{3}] ", - type.OwnerModule.Location, + type.Module.Location, asmFullName, - type.OwnerModule.Name, + type.Module.Name, ns); if (namespaceToNewName.TryGetValue(key, out newName)) return newName; diff --git a/de4dot.code/renamer/asmmodules/MemberRefFinder.cs b/de4dot.code/renamer/asmmodules/MemberRefFinder.cs index 685783ef..9ae385e9 100644 --- a/de4dot.code/renamer/asmmodules/MemberRefFinder.cs +++ b/de4dot.code/renamer/asmmodules/MemberRefFinder.cs @@ -244,8 +244,8 @@ namespace de4dot.code.renamer.asmmodules { if (ca == null || customAttributes.ContainsKey(ca)) return; customAttributes[ca] = true; - push(ca.Ctor); - add(ca.Arguments); + push(ca.Constructor); + add(ca.ConstructorArguments); add(ca.NamedArguments); } @@ -298,10 +298,10 @@ namespace de4dot.code.renamer.asmmodules { void add(EventDef ed) { if (ed == null || eventDefs.ContainsKey(ed)) return; - if (ed.DeclaringType != null && ed.DeclaringType.OwnerModule != validModule) + if (ed.DeclaringType != null && ed.DeclaringType.Module != validModule) return; eventDefs[ed] = true; - push(ed.Type); + push(ed.EventType); add(ed.CustomAttributes); add(ed.AddMethod); add(ed.InvokeMethod); @@ -320,7 +320,7 @@ namespace de4dot.code.renamer.asmmodules { void add(FieldDef fd) { if (fd == null || fieldDefs.ContainsKey(fd)) return; - if (fd.DeclaringType != null && fd.DeclaringType.OwnerModule != validModule) + if (fd.DeclaringType != null && fd.DeclaringType.Module != validModule) return; fieldDefs[fd] = true; add(fd.CustomAttributes); @@ -363,7 +363,7 @@ namespace de4dot.code.renamer.asmmodules { void add(MemberRef mr) { if (mr == null || memberRefs.ContainsKey(mr)) return; - if (mr.OwnerModule != validModule) + if (mr.Module != validModule) return; memberRefs[mr] = true; push(mr.Class); @@ -381,12 +381,12 @@ namespace de4dot.code.renamer.asmmodules { void add(MethodDef md) { if (md == null || methodDefs.ContainsKey(md)) return; - if (md.DeclaringType != null && md.DeclaringType.OwnerModule != validModule) + if (md.DeclaringType != null && md.DeclaringType.Module != validModule) return; methodDefs[md] = true; add(md.Signature); add(md.ParamList); - add(md.GenericParams); + add(md.GenericParameters); add(md.DeclSecurities); add(md.MethodBody); add(md.CustomAttributes); @@ -507,7 +507,7 @@ namespace de4dot.code.renamer.asmmodules { void add(MethodSpec ms) { if (ms == null || methodSpecs.ContainsKey(ms)) return; - if (ms.Method != null && ms.Method.DeclaringType != null && ms.Method.DeclaringType.OwnerModule != validModule) + if (ms.Method != null && ms.Method.DeclaringType != null && ms.Method.DeclaringType.Module != validModule) return; methodSpecs[ms] = true; push(ms.Method); @@ -525,7 +525,7 @@ namespace de4dot.code.renamer.asmmodules { void add(PropertyDef pd) { if (pd == null || propertyDefs.ContainsKey(pd)) return; - if (pd.DeclaringType != null && pd.DeclaringType.OwnerModule != validModule) + if (pd.DeclaringType != null && pd.DeclaringType.Module != validModule) return; propertyDefs[pd] = true; add(pd.Type); @@ -546,14 +546,14 @@ namespace de4dot.code.renamer.asmmodules { void add(TypeDef td) { if (td == null || typeDefs.ContainsKey(td)) return; - if (td.OwnerModule != validModule) + if (td.Module != validModule) return; typeDefs[td] = true; push(td.BaseType); add(td.Fields); add(td.Methods); - add(td.GenericParams); - add(td.InterfaceImpls); + add(td.GenericParameters); + add(td.Interfaces); add(td.DeclSecurities); add(td.DeclaringType); add(td.Events); @@ -579,7 +579,7 @@ namespace de4dot.code.renamer.asmmodules { void add(TypeRef tr) { if (tr == null || typeRefs.ContainsKey(tr)) return; - if (tr.OwnerModule != validModule) + if (tr.Module != validModule) return; typeRefs[tr] = true; push(tr.ResolutionScope); @@ -596,7 +596,7 @@ namespace de4dot.code.renamer.asmmodules { void add(TypeSig ts) { if (ts == null || typeSigs.ContainsKey(ts)) return; - if (ts.OwnerModule != validModule) + if (ts.Module != validModule) return; typeSigs[ts] = true; @@ -664,7 +664,7 @@ namespace de4dot.code.renamer.asmmodules { void add(TypeSpec ts) { if (ts == null || typeSpecs.ContainsKey(ts)) return; - if (ts.OwnerModule != validModule) + if (ts.Module != validModule) return; typeSpecs[ts] = true; add(ts.TypeSig); @@ -681,7 +681,7 @@ namespace de4dot.code.renamer.asmmodules { void add(ExportedType et) { if (et == null || exportedTypes.ContainsKey(et)) return; - if (et.OwnerModule != validModule) + if (et.Module != validModule) return; exportedTypes[et] = true; add(et.CustomAttributes); diff --git a/de4dot.code/renamer/asmmodules/MethodDef.cs b/de4dot.code/renamer/asmmodules/MethodDef.cs index e0fd51c1..b365f20b 100644 --- a/de4dot.code/renamer/asmmodules/MethodDef.cs +++ b/de4dot.code/renamer/asmmodules/MethodDef.cs @@ -65,7 +65,7 @@ namespace de4dot.code.renamer.asmmodules { public MMethodDef(MethodDef methodDefinition, MTypeDef owner, int index) : base(methodDefinition, owner, index) { - genericParams = MGenericParamDef.createGenericParamDefList(MethodDef.GenericParams); + genericParams = MGenericParamDef.createGenericParamDefList(MethodDef.GenericParameters); visibleBaseIndex = methodDefinition.MethodSig != null && methodDefinition.MethodSig.HasThis ? 1 : 0; for (int i = 0; i < methodDefinition.Parameters.Count; i++) { var param = methodDefinition.Parameters[i]; diff --git a/de4dot.code/renamer/asmmodules/Modules.cs b/de4dot.code/renamer/asmmodules/Modules.cs index 4c3bf6bb..1fecf5a6 100644 --- a/de4dot.code/renamer/asmmodules/Modules.cs +++ b/de4dot.code/renamer/asmmodules/Modules.cs @@ -205,7 +205,7 @@ namespace de4dot.code.renamer.asmmodules { // Initialize interfaces foreach (var typeDef in allTypes) { - foreach (var iface in typeDef.TypeDef.InterfaceImpls) { + foreach (var iface in typeDef.TypeDef.Interfaces) { var ifaceTypeDef = resolveType(iface.Interface) ?? resolveOther(iface.Interface); if (ifaceTypeDef != null) typeDef.addInterface(ifaceTypeDef, iface.Interface); @@ -336,7 +336,7 @@ namespace de4dot.code.renamer.asmmodules { typeDef = new MTypeDef(typeDefinition, null, 0); typeDef.addMembers(); - foreach (var iface in typeDef.TypeDef.InterfaceImpls) { + foreach (var iface in typeDef.TypeDef.Interfaces) { var ifaceDef = resolveOther(iface.Interface); if (ifaceDef == null) continue; @@ -391,15 +391,15 @@ namespace de4dot.code.renamer.asmmodules { if (scopeType == ScopeType.ModuleRef) { var moduleRef = (ModuleRef)scope; - if (moduleRef.Name == type.OwnerModule.Name) { - var modules = findModules(type.OwnerModule); + if (moduleRef.Name == type.Module.Name) { + var modules = findModules(type.Module); if (modules != null) return modules; } } if (scopeType == ScopeType.ModuleRef || scopeType == ScopeType.ModuleDef) { - var asm = type.OwnerModule.Assembly; + var asm = type.Module.Assembly; if (asm == null) return null; var moduleHash = assemblyHash.lookup(asm.FullName); @@ -452,7 +452,7 @@ namespace de4dot.code.renamer.asmmodules { Logger.e("Could not resolve TypeReference {0} ({1:X8}) (from {2} -> {3})", Utils.removeNewlines(typeRef), typeRef.MDToken.ToInt32(), - typeRef.OwnerModule, + typeRef.Module, typeRef.Scope); return null; } @@ -473,7 +473,7 @@ namespace de4dot.code.renamer.asmmodules { Logger.e("Could not resolve MethodReference {0} ({1:X8}) (from {2} -> {3})", Utils.removeNewlines(methodRef), methodRef.MDToken.ToInt32(), - methodRef.DeclaringType.OwnerModule, + methodRef.DeclaringType.Module, methodRef.DeclaringType.Scope); return null; } @@ -494,7 +494,7 @@ namespace de4dot.code.renamer.asmmodules { Logger.e("Could not resolve FieldReference {0} ({1:X8}) (from {2} -> {3})", Utils.removeNewlines(fieldReference), fieldReference.MDToken.ToInt32(), - fieldReference.DeclaringType.OwnerModule, + fieldReference.DeclaringType.Module, fieldReference.DeclaringType.Scope); return null; } diff --git a/de4dot.code/renamer/asmmodules/TypeDef.cs b/de4dot.code/renamer/asmmodules/TypeDef.cs index e66317e9..61ef2e26 100644 --- a/de4dot.code/renamer/asmmodules/TypeDef.cs +++ b/de4dot.code/renamer/asmmodules/TypeDef.cs @@ -298,7 +298,7 @@ namespace de4dot.code.renamer.asmmodules { public MTypeDef(TypeDef typeDefinition, Module module, int index) : base(typeDefinition, null, index) { this.module = module; - genericParams = MGenericParamDef.createGenericParamDefList(TypeDef.GenericParams); + genericParams = MGenericParamDef.createGenericParamDefList(TypeDef.GenericParameters); } public void addInterface(MTypeDef ifaceDef, ITypeDefOrRef iface) { @@ -663,7 +663,7 @@ namespace de4dot.code.renamer.asmmodules { return resolvedAllInterfacesResult.Value; } bool resolvedAllInterfacesInternal() { - if (TypeDef.InterfaceImpls.Count != interfaces.Count) + if (TypeDef.Interfaces.Count != interfaces.Count) return false; foreach (var ifaceInfo in interfaces) { if (!ifaceInfo.typeDef.resolvedAllInterfaces()) diff --git a/dot10 b/dot10 index e17e420a..4f392d62 160000 --- a/dot10 +++ b/dot10 @@ -1 +1 @@ -Subproject commit e17e420a2427869b70963756222518aa003f8aec +Subproject commit 4f392d624e7a9e23133801f2d18b0948e13e4411