/* Copyright (C) 2014-2019 de4dot@gmail.com This file is part of dnSpy dnSpy is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. dnSpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with dnSpy. If not, see . */ namespace dnSpy.Contracts.Hex.Files.PE { /// /// Sections array /// public class PeSectionsData : ArrayData { const string NAME = "Sections"; /// /// Constructor /// /// Span /// Array elements public PeSectionsData(HexBufferSpan span, ArrayField[] fields) : base(NAME, span, fields) { } } /// /// Section header /// public abstract class PeSectionData : StructureData { const string NAME = "IMAGE_SECTION_HEADER"; /// /// Constructor /// /// Span protected PeSectionData(HexBufferSpan span) : base(NAME, span) { } /// IMAGE_SECTION_HEADER.Name public abstract StructField SectionName { get; } /// IMAGE_SECTION_HEADER.VirtualSize public abstract StructField VirtualSize { get; } /// IMAGE_SECTION_HEADER.VirtualAddress public abstract StructField VirtualAddress { get; } /// IMAGE_SECTION_HEADER.SizeOfRawData public abstract StructField SizeOfRawData { get; } /// IMAGE_SECTION_HEADER.PointerToRawData public abstract StructField PointerToRawData { get; } /// IMAGE_SECTION_HEADER.PointerToRelocations public abstract StructField PointerToRelocations { get; } /// IMAGE_SECTION_HEADER.PointerToLinenumbers public abstract StructField PointerToLinenumbers { get; } /// IMAGE_SECTION_HEADER.NumberOfRelocations public abstract StructField NumberOfRelocations { get; } /// IMAGE_SECTION_HEADER.NumberOfLinenumbers public abstract StructField NumberOfLinenumbers { get; } /// IMAGE_SECTION_HEADER.Characteristics public abstract StructField Characteristics { get; } } }