示例#1
0
 public void Read(ClrModuleReader reader)
 {
     this.FieldDefinition = new FieldDefinition();
     this.FieldDefinition.Attributes = (FieldAttributes)reader.Binary.ReadUInt16();
     this.FieldDefinition.Name = reader.ReadString();
     this.Signature = reader.ReadFieldSignature();
 }
示例#2
0
        private static ModuleDefinition GetClrBasicsFor(string file, PEFile pe)
        {
            var stream = new MemoryStream(File.ReadAllBytes(file));
            var reader = new BinaryStreamReader(stream, new byte[1024]);

            pe.ReadFrom(reader);

            var clrDirectory = pe.OptionalHeader.DataDirectories[(int)DataDirectoryKind.Clr];

            var rvaStream = new RvaStream(
                stream,
                pe.SectionHeaders.Select(
                    s => new RvaStream.Range
            {
                PhysicalAddress = s.PointerToRawData,
                Size            = s.VirtualSize,
                VirtualAddress  = s.VirtualAddress
            })
                .ToArray());

            rvaStream.Position = clrDirectory.VirtualAddress;

            var sectionReader = new BinaryStreamReader(rvaStream, new byte[32]);

            var clrmod = new ModuleDefinition();

            ClrModuleReader.Read(sectionReader, clrmod);

            return(clrmod);
        }
 public void Read(ClrModuleReader reader)
 {
     this.Offset = reader.Binary.ReadUInt32();
     this.Flags = (ManifestResourceAttributes)reader.Binary.ReadUInt32();
     this.Name = reader.ReadString();
     this.Implementation = reader.ReadCodedIndex<Implementation>();
 }
示例#4
0
 public void Read(ClrModuleReader reader)
 {
     this.FieldDefinition            = new FieldDefinition();
     this.FieldDefinition.Attributes = (FieldAttributes)reader.Binary.ReadUInt16();
     this.FieldDefinition.Name       = reader.ReadString();
     this.Signature = reader.ReadFieldSignature();
 }
示例#5
0
 public void Read(ClrModuleReader reader)
 {
     this.Number = reader.Binary.ReadUInt16();
     this.Flags = (GenericParamAttributes)reader.Binary.ReadUInt16();
     this.Owner = reader.ReadCodedIndex<TypeOrMethodDef>();
     this.Name = reader.ReadString();
 }
示例#6
0
 public void Read(ClrModuleReader reader)
 {
     this.PropertyDefinition = new PropertyDefinition();
     this.PropertyDefinition.Attributes = (PropertyAttributes)reader.Binary.ReadUInt16();
     this.PropertyDefinition.Name = reader.ReadString();
     this.Type = reader.ReadPropertySignature();
 }
示例#7
0
 public void Read(ClrModuleReader reader)
 {
     this.MappingFlags = (PInvokeAttributes)reader.Binary.ReadUInt16();
     this.MemberForwarded = reader.ReadCodedIndex<MemberForwarded>();
     this.ImportName = reader.ReadString();
     this.ImportScope = reader.ReadTableIndex(TableKind.ModuleRef);
 }
示例#8
0
 public void Read(ClrModuleReader reader)
 {
     this.Number = reader.Binary.ReadUInt16();
     this.Flags  = (GenericParamAttributes)reader.Binary.ReadUInt16();
     this.Owner  = reader.ReadCodedIndex <TypeOrMethodDef>();
     this.Name   = reader.ReadString();
 }
示例#9
0
 public void Read(ClrModuleReader reader)
 {
     this.PropertyDefinition            = new PropertyDefinition();
     this.PropertyDefinition.Attributes = (PropertyAttributes)reader.Binary.ReadUInt16();
     this.PropertyDefinition.Name       = reader.ReadString();
     this.Type = reader.ReadPropertySignature();
 }
示例#10
0
 public void Read(ClrModuleReader reader)
 {
     this.Type = (ElementType)reader.Binary.ReadByte();
     byte padding = reader.Binary.ReadByte();
     this.Parent = reader.ReadCodedIndex<HasConstant>();
     this.Value = reader.ReadBlob();
 }
示例#11
0
 public void Read(ClrModuleReader reader)
 {
     this.ParameterDefinition            = new ParameterDefinition();
     this.ParameterDefinition.Attributes = (ParamAttributes)reader.Binary.ReadUInt16();
     this.Sequence = reader.Binary.ReadUInt16();
     this.ParameterDefinition.Name = reader.ReadString();
 }
示例#12
0
 public void Read(ClrModuleReader reader)
 {
     this.Offset         = reader.Binary.ReadUInt32();
     this.Flags          = (ManifestResourceAttributes)reader.Binary.ReadUInt32();
     this.Name           = reader.ReadString();
     this.Implementation = reader.ReadCodedIndex <Implementation>();
 }
示例#13
0
 public void Read(ClrModuleReader reader)
 {
     this.MappingFlags    = (PInvokeAttributes)reader.Binary.ReadUInt16();
     this.MemberForwarded = reader.ReadCodedIndex <MemberForwarded>();
     this.ImportName      = reader.ReadString();
     this.ImportScope     = reader.ReadTableIndex(TableKind.ModuleRef);
 }
示例#14
0
 public void Read(ClrModuleReader reader)
 {
     this.ParameterDefinition = new ParameterDefinition();
     this.ParameterDefinition.Attributes = (ParamAttributes)reader.Binary.ReadUInt16();
     this.Sequence = reader.Binary.ReadUInt16();
     this.ParameterDefinition.Name = reader.ReadString();
 }
示例#15
0
        public void Read(ClrModuleReader reader)
        {
            this.TypeReference = new TypeReference.External();

            this.ResolutionScope         = reader.ReadCodedIndex <ResolutionScope>();
            this.TypeReference.Name      = reader.ReadString();
            this.TypeReference.Namespace = reader.ReadString();
        }
示例#16
0
 public void Read(ClrModuleReader reader)
 {
     this.Flags = (TypeAttributes)reader.Binary.ReadUInt32();
     this.TypeDefId = reader.Binary.ReadUInt32();
     this.TypeName = reader.ReadString();
     this.TypeNamespace = reader.ReadString();
     this.Implementation = reader.ReadCodedIndex<Implementation>();
 }
示例#17
0
        public void Read(ClrModuleReader reader)
        {
            this.Type = (ElementType)reader.Binary.ReadByte();
            byte padding = reader.Binary.ReadByte();

            this.Parent = reader.ReadCodedIndex <HasConstant>();
            this.Value  = reader.ReadBlob();
        }
示例#18
0
 public void Read(ClrModuleReader reader)
 {
     this.Flags          = (TypeAttributes)reader.Binary.ReadUInt32();
     this.TypeDefId      = reader.Binary.ReadUInt32();
     this.TypeName       = reader.ReadString();
     this.TypeNamespace  = reader.ReadString();
     this.Implementation = reader.ReadCodedIndex <Implementation>();
 }
示例#19
0
 public void Read(ClrModuleReader reader)
 {
     this.Generation = reader.Binary.ReadUInt16();
     this.Name = reader.ReadString();
     this.Mvid = reader.ReadGuid();
     this.EncId = reader.ReadGuid();
     this.EncBaseId = reader.ReadGuid();
 }
示例#20
0
        public void Read(ClrModuleReader reader)
        {
            this.TypeReference = new TypeReference.External();

            this.ResolutionScope = reader.ReadCodedIndex<ResolutionScope>();
            this.TypeReference.Name = reader.ReadString();
            this.TypeReference.Namespace = reader.ReadString();
        }
示例#21
0
 public void Read(ClrModuleReader reader)
 {
     this.Generation = reader.Binary.ReadUInt16();
     this.Name       = reader.ReadString();
     this.Mvid       = reader.ReadGuid();
     this.EncId      = reader.ReadGuid();
     this.EncBaseId  = reader.ReadGuid();
 }
示例#22
0
 public void Read(ClrModuleReader reader)
 {
     this.HashAlgId = (AssemblyHashAlgorithm)reader.Binary.ReadUInt32();
     this.Version   = reader.ReadVersion();
     this.Flags     = (AssemblyFlags)reader.Binary.ReadUInt32();
     this.PublicKey = reader.ReadBlob();
     this.Name      = reader.ReadString();
     this.Culture   = reader.ReadString();
 }
示例#23
0
 public void Read(ClrModuleReader reader)
 {
     this.Version = reader.ReadVersion();
     this.Flags = (AssemblyFlags)reader.Binary.ReadUInt32();
     this.PublicKeyOrToken = reader.ReadBlob();
     this.Name = reader.ReadString();
     this.Culture = reader.ReadString();
     this.HashValue = reader.ReadBlob();
 }
示例#24
0
 public void Read(ClrModuleReader reader)
 {
     this.Version          = reader.ReadVersion();
     this.Flags            = (AssemblyFlags)reader.Binary.ReadUInt32();
     this.PublicKeyOrToken = reader.ReadBlob();
     this.Name             = reader.ReadString();
     this.Culture          = reader.ReadString();
     this.HashValue        = reader.ReadBlob();
 }
示例#25
0
 public void Read(ClrModuleReader reader)
 {
     this.HashAlgId = (AssemblyHashAlgorithm)reader.Binary.ReadUInt32();
     this.Version = reader.ReadVersion();
     this.Flags = (AssemblyFlags)reader.Binary.ReadUInt32();
     this.PublicKey = reader.ReadBlob();
     this.Name = reader.ReadString();
     this.Culture = reader.ReadString();
 }
示例#26
0
        public void Read(ClrModuleReader reader)
        {
            this.MethodDefinition = new MethodDefinition();

            this.RVA = reader.Binary.ReadUInt32();
            this.MethodDefinition.ImplAttributes = (MethodImplAttributes)reader.Binary.ReadUInt16();
            this.MethodDefinition.Attributes     = (MethodAttributes)reader.Binary.ReadUInt16();
            this.MethodDefinition.Name           = reader.ReadString();
            this.Signature = reader.ReadMethodSignature();
            this.ParamList = reader.ReadTableIndex(TableKind.Param);
        }
示例#27
0
        public void Read(ClrModuleReader reader)
        {
            this.TypeDefinition = new TypeDefinition();

            this.TypeDefinition.Attributes = (TypeAttributes)reader.Binary.ReadUInt32();
            this.TypeDefinition.Name       = reader.ReadString();
            this.TypeDefinition.Namespace  = reader.ReadString();
            this.Extends    = reader.ReadCodedIndex <TypeDefOrRef>();
            this.FieldList  = reader.ReadTableIndex(TableKind.Field);
            this.MethodList = reader.ReadTableIndex(TableKind.MethodDef);
        }
示例#28
0
        public void Read(ClrModuleReader reader)
        {
            this.MethodDefinition = new MethodDefinition();

            this.RVA = reader.Binary.ReadUInt32();
            this.MethodDefinition.ImplAttributes = (MethodImplAttributes)reader.Binary.ReadUInt16();
            this.MethodDefinition.Attributes = (MethodAttributes)reader.Binary.ReadUInt16();
            this.MethodDefinition.Name = reader.ReadString();
            this.Signature = reader.ReadMethodSignature();
            this.ParamList = reader.ReadTableIndex(TableKind.Param);
        }
示例#29
0
        public void Read(ClrModuleReader reader)
        {
            int  tsReserved0    = reader.Binary.ReadInt32();
            byte tsMajorVersion = reader.Binary.ReadByte();
            byte tsMinorVersion = reader.Binary.ReadByte();

            this.Version = new Version(tsMajorVersion, tsMinorVersion);

            byte  heapSizes = reader.Binary.ReadByte();
            byte  reserved1 = reader.Binary.ReadByte();
            ulong valid     = reader.Binary.ReadUInt64();
            ulong sorted    = reader.Binary.ReadUInt64();

            ReadAndInitializeRowCounts(reader.Binary, valid);
            ReadTables(reader);
        }
示例#30
0
        public void Read(ClrModuleReader reader)
        {
            int tsReserved0 = reader.Binary.ReadInt32();
            byte tsMajorVersion = reader.Binary.ReadByte();
            byte tsMinorVersion = reader.Binary.ReadByte();

            this.Version = new Version(tsMajorVersion, tsMinorVersion);

            byte heapSizes = reader.Binary.ReadByte();
            byte reserved1 = reader.Binary.ReadByte();
            ulong valid = reader.Binary.ReadUInt64();
            ulong sorted = reader.Binary.ReadUInt64();

            ReadAndInitializeRowCounts(reader.Binary, valid);
            ReadTables(reader);
        }
示例#31
0
 public void Read(ClrModuleReader reader)
 {
     this.Parent = reader.ReadCodedIndex <HasCustomAttribute>();
     this.Type   = reader.ReadCodedIndex <CustomAttributeType>();
     this.Value  = new CustomAttributeData(reader.ReadBlob());
 }
示例#32
0
 public void Read(ClrModuleReader reader)
 {
     this.RVA   = reader.Binary.ReadUInt32();
     this.Field = reader.ReadTableIndex(TableKind.Field);
 }
示例#33
0
 public void Read(ClrModuleReader reader)
 {
     this.Flags     = (FileAttributes)reader.Binary.ReadUInt32();
     this.Name      = reader.ReadString();
     this.HashValue = reader.ReadBlob();
 }
示例#34
0
 public void Read(ClrModuleReader reader)
 {
     this.Action = (SecurityAction)reader.Binary.ReadUInt16();
     this.Parent = reader.ReadCodedIndex<HasDeclSecurity>();
     this.PermissionSet = reader.ReadBlob();
 }
 public void Read(ClrModuleReader reader)
 {
     this.Processor = reader.Binary.ReadUInt32();
 }
示例#36
0
 public void Read(ClrModuleReader reader)
 {
     this.Class     = reader.ReadTableIndex(TableKind.TypeDef);
     this.Interface = reader.ReadCodedIndex <TypeDefOrRef>();
 }
示例#37
0
 public void Read(ClrModuleReader reader)
 {
     this.Parent       = reader.ReadTableIndex(TableKind.TypeDef);
     this.PropertyList = reader.ReadTableIndex(TableKind.Property);
 }
示例#38
0
 public void Read(ClrModuleReader reader)
 {
     this.Owner      = reader.ReadTableIndex(TableKind.GenericParam);
     this.Constraint = reader.ReadCodedIndex <TypeDefOrRef>();
 }
 private void ReadTables(ClrModuleReader reader)
 {
     var moduleTable = (ModuleEntry[])this.Tables[(int)TableKind.Module];
     if (moduleTable != null)
     {
         for(int i = 0; i < moduleTable.Length; i++)
         {
             moduleTable[i].Read(reader);
         }
     }
     var typeRefTable = (TypeRefEntry[])this.Tables[(int)TableKind.TypeRef];
     if (typeRefTable != null)
     {
         for(int i = 0; i < typeRefTable.Length; i++)
         {
             typeRefTable[i].Read(reader);
         }
     }
     var typeDefTable = (TypeDefEntry[])this.Tables[(int)TableKind.TypeDef];
     if (typeDefTable != null)
     {
         for(int i = 0; i < typeDefTable.Length; i++)
         {
             typeDefTable[i].Read(reader);
         }
     }
     var fieldTable = (FieldEntry[])this.Tables[(int)TableKind.Field];
     if (fieldTable != null)
     {
         for(int i = 0; i < fieldTable.Length; i++)
         {
             fieldTable[i].Read(reader);
         }
     }
     var methodDefTable = (MethodDefEntry[])this.Tables[(int)TableKind.MethodDef];
     if (methodDefTable != null)
     {
         for(int i = 0; i < methodDefTable.Length; i++)
         {
             methodDefTable[i].Read(reader);
         }
     }
     var paramTable = (ParamEntry[])this.Tables[(int)TableKind.Param];
     if (paramTable != null)
     {
         for(int i = 0; i < paramTable.Length; i++)
         {
             paramTable[i].Read(reader);
         }
     }
     var interfaceImplTable = (InterfaceImplEntry[])this.Tables[(int)TableKind.InterfaceImpl];
     if (interfaceImplTable != null)
     {
         for(int i = 0; i < interfaceImplTable.Length; i++)
         {
             interfaceImplTable[i].Read(reader);
         }
     }
     var memberRefTable = (MemberRefEntry[])this.Tables[(int)TableKind.MemberRef];
     if (memberRefTable != null)
     {
         for(int i = 0; i < memberRefTable.Length; i++)
         {
             memberRefTable[i].Read(reader);
         }
     }
     var constantTable = (ConstantEntry[])this.Tables[(int)TableKind.Constant];
     if (constantTable != null)
     {
         for(int i = 0; i < constantTable.Length; i++)
         {
             constantTable[i].Read(reader);
         }
     }
     var customAttributeTable = (CustomAttributeEntry[])this.Tables[(int)TableKind.CustomAttribute];
     if (customAttributeTable != null)
     {
         for(int i = 0; i < customAttributeTable.Length; i++)
         {
             customAttributeTable[i].Read(reader);
         }
     }
     var fieldMarshalTable = (FieldMarshalEntry[])this.Tables[(int)TableKind.FieldMarshal];
     if (fieldMarshalTable != null)
     {
         for(int i = 0; i < fieldMarshalTable.Length; i++)
         {
             fieldMarshalTable[i].Read(reader);
         }
     }
     var declSecurityTable = (DeclSecurityEntry[])this.Tables[(int)TableKind.DeclSecurity];
     if (declSecurityTable != null)
     {
         for(int i = 0; i < declSecurityTable.Length; i++)
         {
             declSecurityTable[i].Read(reader);
         }
     }
     var classLayoutTable = (ClassLayoutEntry[])this.Tables[(int)TableKind.ClassLayout];
     if (classLayoutTable != null)
     {
         for(int i = 0; i < classLayoutTable.Length; i++)
         {
             classLayoutTable[i].Read(reader);
         }
     }
     var fieldLayoutTable = (FieldLayoutEntry[])this.Tables[(int)TableKind.FieldLayout];
     if (fieldLayoutTable != null)
     {
         for(int i = 0; i < fieldLayoutTable.Length; i++)
         {
             fieldLayoutTable[i].Read(reader);
         }
     }
     var standAloneSigTable = (StandAloneSigEntry[])this.Tables[(int)TableKind.StandAloneSig];
     if (standAloneSigTable != null)
     {
         for(int i = 0; i < standAloneSigTable.Length; i++)
         {
             standAloneSigTable[i].Read(reader);
         }
     }
     var eventMapTable = (EventMapEntry[])this.Tables[(int)TableKind.EventMap];
     if (eventMapTable != null)
     {
         for(int i = 0; i < eventMapTable.Length; i++)
         {
             eventMapTable[i].Read(reader);
         }
     }
     var eventTable = (EventEntry[])this.Tables[(int)TableKind.Event];
     if (eventTable != null)
     {
         for(int i = 0; i < eventTable.Length; i++)
         {
             eventTable[i].Read(reader);
         }
     }
     var propertyMapTable = (PropertyMapEntry[])this.Tables[(int)TableKind.PropertyMap];
     if (propertyMapTable != null)
     {
         for(int i = 0; i < propertyMapTable.Length; i++)
         {
             propertyMapTable[i].Read(reader);
         }
     }
     var propertyTable = (PropertyEntry[])this.Tables[(int)TableKind.Property];
     if (propertyTable != null)
     {
         for(int i = 0; i < propertyTable.Length; i++)
         {
             propertyTable[i].Read(reader);
         }
     }
     var methodSemanticsTable = (MethodSemanticsEntry[])this.Tables[(int)TableKind.MethodSemantics];
     if (methodSemanticsTable != null)
     {
         for(int i = 0; i < methodSemanticsTable.Length; i++)
         {
             methodSemanticsTable[i].Read(reader);
         }
     }
     var methodImplTable = (MethodImplEntry[])this.Tables[(int)TableKind.MethodImpl];
     if (methodImplTable != null)
     {
         for(int i = 0; i < methodImplTable.Length; i++)
         {
             methodImplTable[i].Read(reader);
         }
     }
     var moduleRefTable = (ModuleRefEntry[])this.Tables[(int)TableKind.ModuleRef];
     if (moduleRefTable != null)
     {
         for(int i = 0; i < moduleRefTable.Length; i++)
         {
             moduleRefTable[i].Read(reader);
         }
     }
     var typeSpecTable = (TypeSpecEntry[])this.Tables[(int)TableKind.TypeSpec];
     if (typeSpecTable != null)
     {
         for(int i = 0; i < typeSpecTable.Length; i++)
         {
             typeSpecTable[i].Read(reader);
         }
     }
     var implMapTable = (ImplMapEntry[])this.Tables[(int)TableKind.ImplMap];
     if (implMapTable != null)
     {
         for(int i = 0; i < implMapTable.Length; i++)
         {
             implMapTable[i].Read(reader);
         }
     }
     var fieldRVATable = (FieldRVAEntry[])this.Tables[(int)TableKind.FieldRVA];
     if (fieldRVATable != null)
     {
         for(int i = 0; i < fieldRVATable.Length; i++)
         {
             fieldRVATable[i].Read(reader);
         }
     }
     var assemblyTable = (AssemblyEntry[])this.Tables[(int)TableKind.Assembly];
     if (assemblyTable != null)
     {
         for(int i = 0; i < assemblyTable.Length; i++)
         {
             assemblyTable[i].Read(reader);
         }
     }
     var assemblyProcessorTable = (AssemblyProcessorEntry[])this.Tables[(int)TableKind.AssemblyProcessor];
     if (assemblyProcessorTable != null)
     {
         for(int i = 0; i < assemblyProcessorTable.Length; i++)
         {
             assemblyProcessorTable[i].Read(reader);
         }
     }
     var assemblyOSTable = (AssemblyOSEntry[])this.Tables[(int)TableKind.AssemblyOS];
     if (assemblyOSTable != null)
     {
         for(int i = 0; i < assemblyOSTable.Length; i++)
         {
             assemblyOSTable[i].Read(reader);
         }
     }
     var assemblyRefTable = (AssemblyRefEntry[])this.Tables[(int)TableKind.AssemblyRef];
     if (assemblyRefTable != null)
     {
         for(int i = 0; i < assemblyRefTable.Length; i++)
         {
             assemblyRefTable[i].Read(reader);
         }
     }
     var assemblyRefProcessorTable = (AssemblyRefProcessorEntry[])this.Tables[(int)TableKind.AssemblyRefProcessor];
     if (assemblyRefProcessorTable != null)
     {
         for(int i = 0; i < assemblyRefProcessorTable.Length; i++)
         {
             assemblyRefProcessorTable[i].Read(reader);
         }
     }
     var assemblyRefOSTable = (AssemblyRefOSEntry[])this.Tables[(int)TableKind.AssemblyRefOS];
     if (assemblyRefOSTable != null)
     {
         for(int i = 0; i < assemblyRefOSTable.Length; i++)
         {
             assemblyRefOSTable[i].Read(reader);
         }
     }
     var fileTable = (FileEntry[])this.Tables[(int)TableKind.File];
     if (fileTable != null)
     {
         for(int i = 0; i < fileTable.Length; i++)
         {
             fileTable[i].Read(reader);
         }
     }
     var exportedTypeTable = (ExportedTypeEntry[])this.Tables[(int)TableKind.ExportedType];
     if (exportedTypeTable != null)
     {
         for(int i = 0; i < exportedTypeTable.Length; i++)
         {
             exportedTypeTable[i].Read(reader);
         }
     }
     var manifestResourceTable = (ManifestResourceEntry[])this.Tables[(int)TableKind.ManifestResource];
     if (manifestResourceTable != null)
     {
         for(int i = 0; i < manifestResourceTable.Length; i++)
         {
             manifestResourceTable[i].Read(reader);
         }
     }
     var nestedClassTable = (NestedClassEntry[])this.Tables[(int)TableKind.NestedClass];
     if (nestedClassTable != null)
     {
         for(int i = 0; i < nestedClassTable.Length; i++)
         {
             nestedClassTable[i].Read(reader);
         }
     }
     var genericParamTable = (GenericParamEntry[])this.Tables[(int)TableKind.GenericParam];
     if (genericParamTable != null)
     {
         for(int i = 0; i < genericParamTable.Length; i++)
         {
             genericParamTable[i].Read(reader);
         }
     }
     var methodSpecTable = (MethodSpecEntry[])this.Tables[(int)TableKind.MethodSpec];
     if (methodSpecTable != null)
     {
         for(int i = 0; i < methodSpecTable.Length; i++)
         {
             methodSpecTable[i].Read(reader);
         }
     }
     var genericParamConstraintTable = (GenericParamConstraintEntry[])this.Tables[(int)TableKind.GenericParamConstraint];
     if (genericParamConstraintTable != null)
     {
         for(int i = 0; i < genericParamConstraintTable.Length; i++)
         {
             genericParamConstraintTable[i].Read(reader);
         }
     }
 }
示例#40
0
 public void Read(ClrModuleReader reader)
 {
     this.RVA = reader.Binary.ReadUInt32();
     this.Field = reader.ReadTableIndex(TableKind.Field);
 }
示例#41
0
 public void Read(ClrModuleReader reader)
 {
     this.PackingSize = reader.Binary.ReadUInt16();
     this.ClassSize   = reader.Binary.ReadUInt32();
     this.Parent      = reader.ReadTableIndex(TableKind.TypeDef);
 }
 public void Read(ClrModuleReader reader)
 {
     this.Processor = reader.Binary.ReadUInt32();
 }
示例#43
0
 public void Read(ClrModuleReader reader)
 {
     this.Signature = reader.ReadTypeSpec();
 }
示例#44
0
 public void Read(ClrModuleReader reader)
 {
     this.Class = reader.ReadCodedIndex<MemberRefParent>();
     this.Name = reader.ReadString();
     this.SignatureBlob = reader.ReadBlob();
 }
示例#45
0
 public void Read(ClrModuleReader reader)
 {
     this.EventFlags = (EventAttributes)reader.Binary.ReadUInt16();
     this.Name       = reader.ReadString();
     this.EventType  = reader.ReadCodedIndex <TypeDefOrRef>();
 }
        private void ReadTables(ClrModuleReader reader)
        {
            var moduleTable = (ModuleEntry[])this.Tables[(int)TableKind.Module];

            if (moduleTable != null)
            {
                for (int i = 0; i < moduleTable.Length; i++)
                {
                    moduleTable[i].Read(reader);
                }
            }
            var typeRefTable = (TypeRefEntry[])this.Tables[(int)TableKind.TypeRef];

            if (typeRefTable != null)
            {
                for (int i = 0; i < typeRefTable.Length; i++)
                {
                    typeRefTable[i].Read(reader);
                }
            }
            var typeDefTable = (TypeDefEntry[])this.Tables[(int)TableKind.TypeDef];

            if (typeDefTable != null)
            {
                for (int i = 0; i < typeDefTable.Length; i++)
                {
                    typeDefTable[i].Read(reader);
                }
            }
            var fieldTable = (FieldEntry[])this.Tables[(int)TableKind.Field];

            if (fieldTable != null)
            {
                for (int i = 0; i < fieldTable.Length; i++)
                {
                    fieldTable[i].Read(reader);
                }
            }
            var methodDefTable = (MethodDefEntry[])this.Tables[(int)TableKind.MethodDef];

            if (methodDefTable != null)
            {
                for (int i = 0; i < methodDefTable.Length; i++)
                {
                    methodDefTable[i].Read(reader);
                }
            }
            var paramTable = (ParamEntry[])this.Tables[(int)TableKind.Param];

            if (paramTable != null)
            {
                for (int i = 0; i < paramTable.Length; i++)
                {
                    paramTable[i].Read(reader);
                }
            }
            var interfaceImplTable = (InterfaceImplEntry[])this.Tables[(int)TableKind.InterfaceImpl];

            if (interfaceImplTable != null)
            {
                for (int i = 0; i < interfaceImplTable.Length; i++)
                {
                    interfaceImplTable[i].Read(reader);
                }
            }
            var memberRefTable = (MemberRefEntry[])this.Tables[(int)TableKind.MemberRef];

            if (memberRefTable != null)
            {
                for (int i = 0; i < memberRefTable.Length; i++)
                {
                    memberRefTable[i].Read(reader);
                }
            }
            var constantTable = (ConstantEntry[])this.Tables[(int)TableKind.Constant];

            if (constantTable != null)
            {
                for (int i = 0; i < constantTable.Length; i++)
                {
                    constantTable[i].Read(reader);
                }
            }
            var customAttributeTable = (CustomAttributeEntry[])this.Tables[(int)TableKind.CustomAttribute];

            if (customAttributeTable != null)
            {
                for (int i = 0; i < customAttributeTable.Length; i++)
                {
                    customAttributeTable[i].Read(reader);
                }
            }
            var fieldMarshalTable = (FieldMarshalEntry[])this.Tables[(int)TableKind.FieldMarshal];

            if (fieldMarshalTable != null)
            {
                for (int i = 0; i < fieldMarshalTable.Length; i++)
                {
                    fieldMarshalTable[i].Read(reader);
                }
            }
            var declSecurityTable = (DeclSecurityEntry[])this.Tables[(int)TableKind.DeclSecurity];

            if (declSecurityTable != null)
            {
                for (int i = 0; i < declSecurityTable.Length; i++)
                {
                    declSecurityTable[i].Read(reader);
                }
            }
            var classLayoutTable = (ClassLayoutEntry[])this.Tables[(int)TableKind.ClassLayout];

            if (classLayoutTable != null)
            {
                for (int i = 0; i < classLayoutTable.Length; i++)
                {
                    classLayoutTable[i].Read(reader);
                }
            }
            var fieldLayoutTable = (FieldLayoutEntry[])this.Tables[(int)TableKind.FieldLayout];

            if (fieldLayoutTable != null)
            {
                for (int i = 0; i < fieldLayoutTable.Length; i++)
                {
                    fieldLayoutTable[i].Read(reader);
                }
            }
            var standAloneSigTable = (StandAloneSigEntry[])this.Tables[(int)TableKind.StandAloneSig];

            if (standAloneSigTable != null)
            {
                for (int i = 0; i < standAloneSigTable.Length; i++)
                {
                    standAloneSigTable[i].Read(reader);
                }
            }
            var eventMapTable = (EventMapEntry[])this.Tables[(int)TableKind.EventMap];

            if (eventMapTable != null)
            {
                for (int i = 0; i < eventMapTable.Length; i++)
                {
                    eventMapTable[i].Read(reader);
                }
            }
            var eventTable = (EventEntry[])this.Tables[(int)TableKind.Event];

            if (eventTable != null)
            {
                for (int i = 0; i < eventTable.Length; i++)
                {
                    eventTable[i].Read(reader);
                }
            }
            var propertyMapTable = (PropertyMapEntry[])this.Tables[(int)TableKind.PropertyMap];

            if (propertyMapTable != null)
            {
                for (int i = 0; i < propertyMapTable.Length; i++)
                {
                    propertyMapTable[i].Read(reader);
                }
            }
            var propertyTable = (PropertyEntry[])this.Tables[(int)TableKind.Property];

            if (propertyTable != null)
            {
                for (int i = 0; i < propertyTable.Length; i++)
                {
                    propertyTable[i].Read(reader);
                }
            }
            var methodSemanticsTable = (MethodSemanticsEntry[])this.Tables[(int)TableKind.MethodSemantics];

            if (methodSemanticsTable != null)
            {
                for (int i = 0; i < methodSemanticsTable.Length; i++)
                {
                    methodSemanticsTable[i].Read(reader);
                }
            }
            var methodImplTable = (MethodImplEntry[])this.Tables[(int)TableKind.MethodImpl];

            if (methodImplTable != null)
            {
                for (int i = 0; i < methodImplTable.Length; i++)
                {
                    methodImplTable[i].Read(reader);
                }
            }
            var moduleRefTable = (ModuleRefEntry[])this.Tables[(int)TableKind.ModuleRef];

            if (moduleRefTable != null)
            {
                for (int i = 0; i < moduleRefTable.Length; i++)
                {
                    moduleRefTable[i].Read(reader);
                }
            }
            var typeSpecTable = (TypeSpecEntry[])this.Tables[(int)TableKind.TypeSpec];

            if (typeSpecTable != null)
            {
                for (int i = 0; i < typeSpecTable.Length; i++)
                {
                    typeSpecTable[i].Read(reader);
                }
            }
            var implMapTable = (ImplMapEntry[])this.Tables[(int)TableKind.ImplMap];

            if (implMapTable != null)
            {
                for (int i = 0; i < implMapTable.Length; i++)
                {
                    implMapTable[i].Read(reader);
                }
            }
            var fieldRVATable = (FieldRVAEntry[])this.Tables[(int)TableKind.FieldRVA];

            if (fieldRVATable != null)
            {
                for (int i = 0; i < fieldRVATable.Length; i++)
                {
                    fieldRVATable[i].Read(reader);
                }
            }
            var assemblyTable = (AssemblyEntry[])this.Tables[(int)TableKind.Assembly];

            if (assemblyTable != null)
            {
                for (int i = 0; i < assemblyTable.Length; i++)
                {
                    assemblyTable[i].Read(reader);
                }
            }
            var assemblyProcessorTable = (AssemblyProcessorEntry[])this.Tables[(int)TableKind.AssemblyProcessor];

            if (assemblyProcessorTable != null)
            {
                for (int i = 0; i < assemblyProcessorTable.Length; i++)
                {
                    assemblyProcessorTable[i].Read(reader);
                }
            }
            var assemblyOSTable = (AssemblyOSEntry[])this.Tables[(int)TableKind.AssemblyOS];

            if (assemblyOSTable != null)
            {
                for (int i = 0; i < assemblyOSTable.Length; i++)
                {
                    assemblyOSTable[i].Read(reader);
                }
            }
            var assemblyRefTable = (AssemblyRefEntry[])this.Tables[(int)TableKind.AssemblyRef];

            if (assemblyRefTable != null)
            {
                for (int i = 0; i < assemblyRefTable.Length; i++)
                {
                    assemblyRefTable[i].Read(reader);
                }
            }
            var assemblyRefProcessorTable = (AssemblyRefProcessorEntry[])this.Tables[(int)TableKind.AssemblyRefProcessor];

            if (assemblyRefProcessorTable != null)
            {
                for (int i = 0; i < assemblyRefProcessorTable.Length; i++)
                {
                    assemblyRefProcessorTable[i].Read(reader);
                }
            }
            var assemblyRefOSTable = (AssemblyRefOSEntry[])this.Tables[(int)TableKind.AssemblyRefOS];

            if (assemblyRefOSTable != null)
            {
                for (int i = 0; i < assemblyRefOSTable.Length; i++)
                {
                    assemblyRefOSTable[i].Read(reader);
                }
            }
            var fileTable = (FileEntry[])this.Tables[(int)TableKind.File];

            if (fileTable != null)
            {
                for (int i = 0; i < fileTable.Length; i++)
                {
                    fileTable[i].Read(reader);
                }
            }
            var exportedTypeTable = (ExportedTypeEntry[])this.Tables[(int)TableKind.ExportedType];

            if (exportedTypeTable != null)
            {
                for (int i = 0; i < exportedTypeTable.Length; i++)
                {
                    exportedTypeTable[i].Read(reader);
                }
            }
            var manifestResourceTable = (ManifestResourceEntry[])this.Tables[(int)TableKind.ManifestResource];

            if (manifestResourceTable != null)
            {
                for (int i = 0; i < manifestResourceTable.Length; i++)
                {
                    manifestResourceTable[i].Read(reader);
                }
            }
            var nestedClassTable = (NestedClassEntry[])this.Tables[(int)TableKind.NestedClass];

            if (nestedClassTable != null)
            {
                for (int i = 0; i < nestedClassTable.Length; i++)
                {
                    nestedClassTable[i].Read(reader);
                }
            }
            var genericParamTable = (GenericParamEntry[])this.Tables[(int)TableKind.GenericParam];

            if (genericParamTable != null)
            {
                for (int i = 0; i < genericParamTable.Length; i++)
                {
                    genericParamTable[i].Read(reader);
                }
            }
            var methodSpecTable = (MethodSpecEntry[])this.Tables[(int)TableKind.MethodSpec];

            if (methodSpecTable != null)
            {
                for (int i = 0; i < methodSpecTable.Length; i++)
                {
                    methodSpecTable[i].Read(reader);
                }
            }
            var genericParamConstraintTable = (GenericParamConstraintEntry[])this.Tables[(int)TableKind.GenericParamConstraint];

            if (genericParamConstraintTable != null)
            {
                for (int i = 0; i < genericParamConstraintTable.Length; i++)
                {
                    genericParamConstraintTable[i].Read(reader);
                }
            }
        }
示例#47
0
 public void Read(ClrModuleReader reader)
 {
     this.Parent = reader.ReadTableIndex(TableKind.TypeDef);
     this.EventList = reader.ReadTableIndex(TableKind.Event);
 }
示例#48
0
 public void Read(ClrModuleReader reader)
 {
     this.Class             = reader.ReadTableIndex(TableKind.TypeDef);
     this.MethodBody        = reader.ReadCodedIndex <MethodDefOrRef>();
     this.MethodDeclaration = reader.ReadCodedIndex <MethodDefOrRef>();
 }
示例#49
0
 public void Read(ClrModuleReader reader)
 {
     this.NestedClass = reader.ReadTableIndex(TableKind.TypeDef);
     this.EnclosingClass = reader.ReadTableIndex(TableKind.TypeDef);
 }
示例#50
0
 public void Read(ClrModuleReader reader)
 {
     this.Flags = (FileAttributes)reader.Binary.ReadUInt32();
     this.Name = reader.ReadString();
     this.HashValue = reader.ReadBlob();
 }
示例#51
0
 public void Read(ClrModuleReader reader)
 {
     this.Parent    = reader.ReadTableIndex(TableKind.TypeDef);
     this.EventList = reader.ReadTableIndex(TableKind.Event);
 }
 public void Read(ClrModuleReader reader)
 {
     this.Owner = reader.ReadTableIndex(TableKind.GenericParam);
     this.Constraint = reader.ReadCodedIndex<TypeDefOrRef>();
 }
示例#53
0
 public void Read(ClrModuleReader reader)
 {
     this.EventFlags = (EventAttributes)reader.Binary.ReadUInt16();
     this.Name = reader.ReadString();
     this.EventType = reader.ReadCodedIndex<TypeDefOrRef>();
 }
示例#54
0
 public void Read(ClrModuleReader reader)
 {
     this.Parent = reader.ReadCodedIndex<HasCustomAttribute>();
     this.Type = reader.ReadCodedIndex<CustomAttributeType>();
     this.Value = new CustomAttributeData(reader.ReadBlob());
 }
示例#55
0
 public void Read(ClrModuleReader reader)
 {
     this.OSPlatformID = reader.Binary.ReadUInt32();
     this.OSMajorVersion = reader.Binary.ReadUInt32();
     this.OSMinorVersion = reader.Binary.ReadUInt32();
 }
示例#56
0
 public void Read(ClrModuleReader reader)
 {
     this.Semantics   = (MethodSemanticsAttributes)reader.Binary.ReadUInt16();
     this.Method      = reader.ReadTableIndex(TableKind.MethodDef);
     this.Association = reader.ReadCodedIndex <HasSemantics>();
 }
示例#57
0
 public void Read(ClrModuleReader reader)
 {
     this.Class = reader.ReadTableIndex(TableKind.TypeDef);
     this.MethodBody = reader.ReadCodedIndex<MethodDefOrRef>();
     this.MethodDeclaration = reader.ReadCodedIndex<MethodDefOrRef>();
 }
示例#58
0
 public void Read(ClrModuleReader reader)
 {
     this.Class = reader.ReadTableIndex(TableKind.TypeDef);
     this.Interface = reader.ReadCodedIndex<TypeDefOrRef>();
 }
示例#59
0
 public void Read(ClrModuleReader reader)
 {
     this.Semantics = (MethodSemanticsAttributes)reader.Binary.ReadUInt16();
     this.Method = reader.ReadTableIndex(TableKind.MethodDef);
     this.Association = reader.ReadCodedIndex<HasSemantics>();
 }
示例#60
0
 public void Read(ClrModuleReader reader)
 {
     this.Signature = reader.ReadTypeSpec();
 }