private void LoadData(CLIFile pFile) { Processor = pFile.ReadUInt32(); int assemblyRefIndex = 0; if (pFile.AssemblyRefTable.Length >= 0xFFFF) assemblyRefIndex = pFile.ReadInt32() - 1; else assemblyRefIndex = pFile.ReadUInt16() - 1; if (assemblyRefIndex >= 0) AssemblyRef = pFile.AssemblyRefTable[assemblyRefIndex]; }
private void LoadData(CLIFile pFile) { OSPlatformId = pFile.ReadUInt32(); OSMajorVersion = pFile.ReadUInt32(); OSMinorVersion = pFile.ReadUInt32(); int assemblyRefIndex = 0; if (pFile.AssemblyRefTable.Length >= 0xFFFF) assemblyRefIndex = pFile.ReadInt32() - 1; else assemblyRefIndex = pFile.ReadUInt16() - 1; if (assemblyRefIndex >= 0) AssemblyRef = pFile.AssemblyRefTable[assemblyRefIndex]; }
public void LoadData(CLIFile pFile) { int token = 0; if (pFile.FileTable.Length > ImplementationTypeMax16BitRows || pFile.AssemblyRefTable.Length > ImplementationTypeMax16BitRows || pFile.ExportedTypeTable.Length > ImplementationTypeMax16BitRows) token = pFile.ReadInt32(); else token = pFile.ReadUInt16(); Type = (ImplementationType)(token & ImplementationTypeMask); token = (token >> ImplementationTypeBits) - 1; if (token >= 0) { switch (Type) { case ImplementationType.File: File = pFile.FileTable[token]; break; case ImplementationType.AssemblyRef: AssemblyRef = pFile.AssemblyRefTable[token]; break; case ImplementationType.ExportedType: ExportedType = pFile.ExportedTypeTable[token]; break; default: throw new BadImageFormatException("Implementation Type"); } } }
public void LoadData(CLIFile pFile) { int token = 0; if (pFile.ModuleTable.Length > ResolutionScopeTypeMax16BitRows || pFile.ModuleRefTable.Length > ResolutionScopeTypeMax16BitRows || pFile.AssemblyRefTable.Length > ResolutionScopeTypeMax16BitRows || pFile.TypeRefTable.Length > ResolutionScopeTypeMax16BitRows) token = pFile.ReadInt32(); else token = pFile.ReadUInt16(); Type = (ResolutionScopeType)(token & ResolutionScopeTypeMask); token = (token >> ResolutionScopeTypeBits) - 1; if (token >= 0) { switch (Type) { case ResolutionScopeType.Module: Module = pFile.ModuleTable[token]; break; case ResolutionScopeType.ModuleRef: ModuleRef = pFile.ModuleRefTable[token]; break; case ResolutionScopeType.AssemblyRef: AssemblyRef = pFile.AssemblyRefTable[token]; break; case ResolutionScopeType.TypeRef: TypeRef = pFile.TypeRefTable[token]; break; default: throw new BadImageFormatException("ResolutionScope Type"); } } }
public void LoadData(CLIFile pFile) { int token = 0; if (pFile.MethodDefTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.FieldTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.TypeRefTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.TypeDefTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.ParamTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.InterfaceImplTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.MemberRefTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.ModuleTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.DeclSecurityTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.PropertyTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.EventTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.StandAloneSigTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.ModuleRefTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.TypeSpecTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.AssemblyTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.AssemblyRefTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.FileTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.ExportedTypeTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.ManifestResourceTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.GenericParamTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.GenericParamConstraintTable.Length > HasCustomAttributeTypeMax16BitRows || pFile.MethodSpecTable.Length > HasCustomAttributeTypeMax16BitRows) token = pFile.ReadInt32(); else token = pFile.ReadUInt16(); Type = (HasCustomAttributeType)(token & HasCustomAttributeTypeMask); token = (token >> HasCustomAttributeTypeBits) - 1; if (token >= 0) { switch (Type) { case HasCustomAttributeType.MethodDef: MethodDef = pFile.MethodDefTable[token]; break; case HasCustomAttributeType.Field: Field = pFile.FieldTable[token]; break; case HasCustomAttributeType.TypeRef: TypeRef = pFile.TypeRefTable[token]; break; case HasCustomAttributeType.TypeDef: TypeDef = pFile.TypeDefTable[token]; break; case HasCustomAttributeType.Param: Param = pFile.ParamTable[token]; break; case HasCustomAttributeType.InterfaceImpl: InterfaceImpl = pFile.InterfaceImplTable[token]; break; case HasCustomAttributeType.MemberRef: MemberRef = pFile.MemberRefTable[token]; break; case HasCustomAttributeType.Module: Module = pFile.ModuleTable[token]; break; case HasCustomAttributeType.DeclSecurity: DeclSecurity = pFile.DeclSecurityTable[token]; break; case HasCustomAttributeType.Property: Property = pFile.PropertyTable[token]; break; case HasCustomAttributeType.Event: Event = pFile.EventTable[token]; break; case HasCustomAttributeType.StandAloneSig: StandAloneSig = pFile.StandAloneSigTable[token]; break; case HasCustomAttributeType.ModuleRef: ModuleRef = pFile.ModuleRefTable[token]; break; case HasCustomAttributeType.TypeSpec: TypeSpec = pFile.TypeSpecTable[token]; break; case HasCustomAttributeType.Assembly: Assembly = pFile.AssemblyTable[token]; break; case HasCustomAttributeType.AssemblyRef: AssemblyRef = pFile.AssemblyRefTable[token]; break; case HasCustomAttributeType.File: File = pFile.FileTable[token]; break; case HasCustomAttributeType.ExportedType: ExportedType = pFile.ExportedTypeTable[token]; break; case HasCustomAttributeType.ManifestResource: ManifestResource = pFile.ManifestResourceTable[token]; break; case HasCustomAttributeType.GenericParam: GenericParam = pFile.GenericParamTable[token]; break; case HasCustomAttributeType.GenericParamConstraint: GenericParamConstraint = pFile.GenericParamConstraintTable[token]; break; case HasCustomAttributeType.MethodSpec: MethodSpec = pFile.MethodSpecTable[token]; break; default: throw new BadImageFormatException("HasCustomAttribute Type"); } } }