Update code; submodule was updated
This commit is contained in:
parent
4be5776da7
commit
6a7ddbaa56
|
@ -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)));
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<TypeSig> genericArgs) {
|
||||
|
|
|
@ -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, // <reserved>
|
||||
};
|
||||
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, // <reserved>
|
||||
};
|
||||
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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace de4dot.code.deobfuscators.Babel_NET {
|
|||
}
|
||||
|
||||
bool isInOurModule(IMemberRef memberRef) {
|
||||
return memberRef.OwnerModule == module;
|
||||
return memberRef.Module == module;
|
||||
}
|
||||
|
||||
Importer createImporter() {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -79,7 +79,7 @@ namespace de4dot.code.deobfuscators.DeepSea {
|
|||
var fieldsDict = new FieldDefinitionAndDeclaringTypeDict<FieldDef>();
|
||||
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<FieldDef> getPossibleFields(TypeDef type) {
|
||||
var typeToFields = new TypeDefinitionDict<List<FieldDef>>();
|
||||
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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<MethodDef>();
|
||||
foreach (var type in module.GetTypes()) {
|
||||
var cctor = type.FindClassConstructor();
|
||||
var cctor = type.FindStaticConstructor();
|
||||
if (cctor != null && DotNetUtils.isEmpty(cctor))
|
||||
emptyCctorsToRemove.Add(cctor);
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ namespace de4dot.code.deobfuscators {
|
|||
return;
|
||||
|
||||
ourType = new TypeDefUser("", string.Format("<PrivateImplementationDetails>{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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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)"))
|
||||
|
|
|
@ -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++;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 = "<no assembly>";
|
||||
|
||||
// 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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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())
|
||||
|
|
2
dot10
2
dot10
|
@ -1 +1 @@
|
|||
Subproject commit e17e420a2427869b70963756222518aa003f8aec
|
||||
Subproject commit 4f392d624e7a9e23133801f2d18b0948e13e4411
|
Loading…
Reference in New Issue
Block a user