Ejemplo n.º 1
0
        public void LoadData(CLIFile pFile)
        {
            int token = 0;

            if (pFile.TypeDefTable.Length > TypeOrMethodDefTypeMax16BitRows ||
                pFile.MethodDefTable.Length > TypeOrMethodDefTypeMax16BitRows)
            {
                token = pFile.ReadInt32();
            }
            else
            {
                token = pFile.ReadUInt16();
            }
            Type  = (TypeOrMethodDefType)(token & TypeOrMethodDefTypeMask);
            token = (token >> TypeOrMethodDefTypeBits) - 1;
            if (token >= 0)
            {
                switch (Type)
                {
                case TypeOrMethodDefType.TypeDef: TypeDef = pFile.TypeDefTable[token]; break;

                case TypeOrMethodDefType.MethodDef: MethodDef = pFile.MethodDefTable[token]; break;

                default: throw new BadImageFormatException("TypeOrMethodDef Type");
                }
            }
        }
Ejemplo n.º 2
0
        private void LoadData(CLIFile pFile)
        {
            int typeDefIndex = 0;

            if (pFile.TypeDefTable.Length >= 0xFFFF)
            {
                typeDefIndex = pFile.ReadInt32() - 1;
            }
            else
            {
                typeDefIndex = pFile.ReadUInt16() - 1;
            }
            if (typeDefIndex >= 0)
            {
                Parent = pFile.TypeDefTable[typeDefIndex];
            }
            if (pFile.EventTable.Length >= 0xFFFF)
            {
                EventListIndex = pFile.ReadInt32() - 1;
            }
            else
            {
                EventListIndex = pFile.ReadUInt16() - 1;
            }
        }
Ejemplo n.º 3
0
        private void LoadData(CLIFile pFile)
        {
            int typeDefIndex = 0;

            if (pFile.TypeDefTable.Length >= 0xFFFF)
            {
                typeDefIndex = pFile.ReadInt32() - 1;
            }
            else
            {
                typeDefIndex = pFile.ReadUInt16() - 1;
            }
            if (typeDefIndex >= 0)
            {
                NestedClass = pFile.TypeDefTable[typeDefIndex];
            }
            typeDefIndex = 0;
            if (pFile.TypeDefTable.Length >= 0xFFFF)
            {
                typeDefIndex = pFile.ReadInt32() - 1;
            }
            else
            {
                typeDefIndex = pFile.ReadUInt16() - 1;
            }
            if (typeDefIndex >= 0)
            {
                EnclosingClass = pFile.TypeDefTable[typeDefIndex];
            }
        }
Ejemplo n.º 4
0
 private void LoadData(CLIFile pFile)
 {
     int typeDefIndex = 0;
     if (pFile.TypeDefTable.Length >= 0xFFFF) typeDefIndex = pFile.ReadInt32() - 1;
     else typeDefIndex = pFile.ReadUInt16() - 1;
     if (typeDefIndex >= 0) Class = pFile.TypeDefTable[typeDefIndex];
     Interface.LoadData(pFile);
 }
Ejemplo n.º 5
0
 private void LoadData(CLIFile pFile)
 {
     int typeDefIndex = 0;
     if (pFile.TypeDefTable.Length >= 0xFFFF) typeDefIndex = pFile.ReadInt32() - 1;
     else typeDefIndex = pFile.ReadUInt16() - 1;
     if (typeDefIndex >= 0) Parent = pFile.TypeDefTable[typeDefIndex];
     if (pFile.PropertyTable.Length >= 0xFFFF) PropertyListIndex = pFile.ReadInt32() - 1;
     else PropertyListIndex = pFile.ReadUInt16() - 1;
 }
Ejemplo n.º 6
0
 private void LoadData(CLIFile pFile)
 {
     int typeDefIndex = 0;
     if (pFile.TypeDefTable.Length >= 0xFFFF) typeDefIndex = pFile.ReadInt32() - 1;
     else typeDefIndex = pFile.ReadUInt16() - 1;
     if (typeDefIndex >= 0) Class = pFile.TypeDefTable[typeDefIndex];
     MethodBody.LoadData(pFile);
     MethodDeclaration.LoadData(pFile);
 }
Ejemplo n.º 7
0
 private void LoadData(CLIFile pFile)
 {
     PackingSize = pFile.ReadUInt16();
     ClassSize = pFile.ReadUInt32();
     int typeDefIndex = 0;
     if (pFile.TypeDefTable.Length >= 0xFFFF) typeDefIndex = pFile.ReadInt32() - 1;
     else typeDefIndex = pFile.ReadUInt16() - 1;
     if (typeDefIndex >= 0) Parent = pFile.TypeDefTable[typeDefIndex];
 }
Ejemplo n.º 8
0
 private void LoadData(CLIFile pFile)
 {
     Flags = pFile.ReadUInt32();
     int typeDefIndex = 0;
     if (pFile.TypeDefTable.Length >= 0xFFFF) typeDefIndex = pFile.ReadInt32() - 1;
     else typeDefIndex = pFile.ReadUInt16() - 1;
     if (typeDefIndex >= 0) TypeDef = pFile.TypeDefTable[typeDefIndex];
     TypeName = pFile.ReadStringHeap(pFile.ReadHeapIndex(CLIHeapOffsetSize.Strings32Bit));
     TypeNamespace = pFile.ReadStringHeap(pFile.ReadHeapIndex(CLIHeapOffsetSize.Strings32Bit));
     Implementation.LoadData(pFile);
 }
Ejemplo n.º 9
0
 private void LoadData(CLIFile pFile)
 {
     int typeDefIndex = 0;
     if (pFile.TypeDefTable.Length >= 0xFFFF) typeDefIndex = pFile.ReadInt32() - 1;
     else typeDefIndex = pFile.ReadUInt16() - 1;
     if (typeDefIndex >= 0) NestedClass = pFile.TypeDefTable[typeDefIndex];
     typeDefIndex = 0;
     if (pFile.TypeDefTable.Length >= 0xFFFF) typeDefIndex = pFile.ReadInt32() - 1;
     else typeDefIndex = pFile.ReadUInt16() - 1;
     if (typeDefIndex >= 0) EnclosingClass = pFile.TypeDefTable[typeDefIndex];
 }
Ejemplo n.º 10
0
        private void LoadData(CLIFile pFile)
        {
            int typeDefIndex = 0;

            if (pFile.TypeDefTable.Length >= 0xFFFF)
            {
                typeDefIndex = pFile.ReadInt32() - 1;
            }
            else
            {
                typeDefIndex = pFile.ReadUInt16() - 1;
            }
            if (typeDefIndex >= 0)
            {
                Class = pFile.TypeDefTable[typeDefIndex];
            }
            Interface.LoadData(pFile);
        }
Ejemplo n.º 11
0
        private void LoadData(CLIFile pFile)
        {
            PackingSize = pFile.ReadUInt16();
            ClassSize   = pFile.ReadUInt32();
            int typeDefIndex = 0;

            if (pFile.TypeDefTable.Length >= 0xFFFF)
            {
                typeDefIndex = pFile.ReadInt32() - 1;
            }
            else
            {
                typeDefIndex = pFile.ReadUInt16() - 1;
            }
            if (typeDefIndex >= 0)
            {
                Parent = pFile.TypeDefTable[typeDefIndex];
            }
        }
Ejemplo n.º 12
0
        private void LoadData(CLIFile pFile)
        {
            int typeDefIndex = 0;

            if (pFile.TypeDefTable.Length >= 0xFFFF)
            {
                typeDefIndex = pFile.ReadInt32() - 1;
            }
            else
            {
                typeDefIndex = pFile.ReadUInt16() - 1;
            }
            if (typeDefIndex >= 0)
            {
                Class = pFile.TypeDefTable[typeDefIndex];
            }
            MethodBody.LoadData(pFile);
            MethodDeclaration.LoadData(pFile);
        }
Ejemplo n.º 13
0
        private void LoadData(CLIFile pFile)
        {
            Flags = pFile.ReadUInt32();
            int typeDefIndex = 0;

            if (pFile.TypeDefTable.Length >= 0xFFFF)
            {
                typeDefIndex = pFile.ReadInt32() - 1;
            }
            else
            {
                typeDefIndex = pFile.ReadUInt16() - 1;
            }
            if (typeDefIndex >= 0)
            {
                TypeDef = pFile.TypeDefTable[typeDefIndex];
            }
            TypeName      = pFile.ReadStringHeap(pFile.ReadHeapIndex(CLIHeapOffsetSize.Strings32Bit));
            TypeNamespace = pFile.ReadStringHeap(pFile.ReadHeapIndex(CLIHeapOffsetSize.Strings32Bit));
            Implementation.LoadData(pFile);
        }
Ejemplo n.º 14
0
        public void LoadData(CLIFile pFile)
        {
            int token = 0;

            if (pFile.TypeDefTable.Length > MemberRefParentTypeMax16BitRows ||
                pFile.TypeRefTable.Length > MemberRefParentTypeMax16BitRows ||
                pFile.ModuleRefTable.Length > MemberRefParentTypeMax16BitRows ||
                pFile.MethodDefTable.Length > MemberRefParentTypeMax16BitRows ||
                pFile.TypeSpecTable.Length > MemberRefParentTypeMax16BitRows)
            {
                token = pFile.ReadInt32();
            }
            else
            {
                token = pFile.ReadUInt16();
            }
            Type  = (MemberRefParentType)(token & MemberRefParentTypeMask);
            token = (token >> MemberRefParentTypeBits) - 1;
            if (token >= 0)
            {
                switch (Type)
                {
                case MemberRefParentType.TypeDef: TypeDef = pFile.TypeDefTable[token]; break;

                case MemberRefParentType.TypeRef: TypeRef = pFile.TypeRefTable[token]; break;

                case MemberRefParentType.ModuleRef: ModuleRef = pFile.ModuleRefTable[token]; break;

                case MemberRefParentType.MethodDef: MethodDef = pFile.MethodDefTable[token]; break;

                case MemberRefParentType.TypeSpec: TypeSpec = pFile.TypeSpecTable[token]; break;

                default: throw new BadImageFormatException("MemberRefParent Type");
                }
            }
        }
Ejemplo n.º 15
0
        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");
                }
            }
        }