다음을 통해 공유


IMAGE_SECTION_HEADER 구조체(winnt.h)

이미지 섹션 헤더 형식을 나타냅니다.

구문

typedef struct _IMAGE_SECTION_HEADER {
  BYTE  Name[IMAGE_SIZEOF_SHORT_NAME];
  union {
    DWORD PhysicalAddress;
    DWORD VirtualSize;
  } Misc;
  DWORD VirtualAddress;
  DWORD SizeOfRawData;
  DWORD PointerToRawData;
  DWORD PointerToRelocations;
  DWORD PointerToLinenumbers;
  WORD  NumberOfRelocations;
  WORD  NumberOfLinenumbers;
  DWORD Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;

멤버

Name[IMAGE_SIZEOF_SHORT_NAME]

8바이트 null 패딩 UTF-8 문자열입니다. 문자열의 길이가 정확히 8자이면 종료 null 문자가 없습니다. 더 긴 이름의 경우 이 멤버에는 슬래시(/) 뒤에 문자열 테이블에 오프셋인 10진수의 ASCII 표현이 포함됩니다. 실행 파일 이미지는 문자열 테이블을 사용하지 않으며 8자보다 긴 섹션 이름을 지원하지 않습니다.

Misc

Misc.PhysicalAddress

파일 주소입니다.

Misc.VirtualSize

메모리에 로드될 때 섹션의 총 크기(바이트)입니다. 이 값이 SizeOfRawData 멤버보다 크면 섹션이 0으로 채워집니다. 이 필드는 실행 파일 이미지에만 유효하며 개체 파일의 경우 0으로 설정해야 합니다.

VirtualAddress

이미지 베이스를 기준으로 메모리에 로드될 때 섹션의 첫 번째 바이트 주소입니다. 개체 파일의 경우 재배치가 적용되기 전에 첫 번째 바이트의 주소입니다.

SizeOfRawData

디스크에서 초기화된 데이터의 크기(바이트)입니다. 이 값은 IMAGE_OPTIONAL_HEADER 구조체의 FileAlignment 멤버의 배수여야 합니다. 이 값이 VirtualSize 멤버보다 작으면 섹션의 나머지 부분은 0으로 채워집니다. 섹션에 초기화되지 않은 데이터만 포함된 경우 멤버는 0입니다.

PointerToRawData

COFF 파일 내의 첫 번째 페이지에 대한 파일 포인터입니다. 이 값은 IMAGE_OPTIONAL_HEADER 구조체의 FileAlignment 멤버의 배수여야 합니다. 섹션에 초기화되지 않은 데이터만 포함된 경우 이 멤버가 0으로 설정됩니다.

PointerToRelocations

섹션에 대한 재배치 항목의 시작 부분에 대한 파일 포인터입니다. 재배치가 없으면 이 값은 0입니다.

PointerToLinenumbers

섹션에 대한 줄 번호 항목의 시작 부분에 대한 파일 포인터입니다. COFF 줄 번호가 없으면 이 값은 0입니다.

NumberOfRelocations

섹션에 대한 재배치 항목의 수입니다. 이 값은 실행 파일 이미지에 대해 0입니다.

NumberOfLinenumbers

섹션에 대한 줄 번호 항목의 수입니다.

Characteristics

이미지의 특성입니다. 다음 값이 정의됩니다.

플래그 의미
0x00000000
예약되어 있습니다.
0x00000001
예약되어 있습니다.
0x00000002
예약되어 있습니다.
0x00000004
예약되어 있습니다.
IMAGE_SCN_TYPE_NO_PAD
0x00000008
섹션을 다음 경계까지 채우지 않습니다. 이 플래그는 더 이상 사용되지 않으며 IMAGE_SCN_ALIGN_1BYTES로 대체됩니다.
0x00000010
예약되어 있습니다.
IMAGE_SCN_CNT_CODE
0x00000020
실행 코드가 섹션에 포함됩니다.
IMAGE_SCN_CNT_INITIALIZED_DATA
0x00000040
초기화된 데이터가 섹션에 포함됩니다.
IMAGE_SCN_CNT_UNINITIALIZED_DATA
0x00000080
초기화되지 않은 데이터가 섹션에 포함됩니다.
IMAGE_SCN_LNK_OTHER
0x00000100
예약되어 있습니다.
IMAGE_SCN_LNK_INFO
0x00000200
주석 또는 기타 정보가 섹션에 포함됩니다. 개체 파일에만 유효합니다.
0x00000400
예약되어 있습니다.
IMAGE_SCN_LNK_REMOVE
0x00000800
섹션이 이미지의 일부가 되지 않습니다. 개체 파일에만 유효합니다.
IMAGE_SCN_LNK_COMDAT
0x00001000
COMDAT 데이터가 섹션에 포함됩니다. 개체 파일에만 유효합니다.
0x00002000
예약되어 있습니다.
IMAGE_SCN_NO_DEFER_SPEC_EXC
0x00004000
이 섹션의 TLB 항목에서 비트를 처리하는 투기적 예외를 다시 설정합니다.
IMAGE_SCN_GPREL
0x00008000
섹션에는 전역 포인터를 통해 참조되는 데이터가 포함되어 있습니다.
0x00010000
예약되어 있습니다.
IMAGE_SCN_MEM_PURGEABLE
0x00020000
예약되어 있습니다.
IMAGE_SCN_MEM_LOCKED
0x00040000
예약되어 있습니다.
IMAGE_SCN_MEM_PRELOAD
0x00080000
예약되어 있습니다.
IMAGE_SCN_ALIGN_1BYTES
0x00100000
데이터를 1바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_2BYTES
0x00200000
데이터를 2바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_4BYTES
0x00300000
데이터를 4바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_8BYTES
0x00400000
8 바이트 경계에 데이터를 정렬합니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_16BYTES
0x00500000
데이터를 16바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_32BYTES
0x00600000
데이터를 32바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_64BYTES
0x00700000
데이터를 64바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_128BYTES
0x00800000
데이터를 128바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_256BYTES
0x00900000
데이터를 256바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_512BYTES
0x00A00000
데이터를 512바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_1024BYTES
0x00B00000
데이터를 1,024바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_2048BYTES
0x00C00000
데이터를 2,048바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_4096BYTES
0x00D00000
데이터를 4,096바이트 경계에 맞춥니다. 개체 파일에만 유효합니다.
IMAGE_SCN_ALIGN_8192BYTES
0x00E00000
8192 바이트 경계에 데이터를 정렬합니다. 개체 파일에만 유효합니다.
IMAGE_SCN_LNK_NRELOC_OVFL
0x01000000
확장 재배치가 섹션에 포함됩니다. 섹션의 재배치 수는 섹션 헤더에서 예약된 16비트보다 횟수입니다. 섹션 헤더의 NumberOfRelocations 필드가 0xffff 경우 실제 재배치 수는 첫 번째 재배치의 VirtualAddress 필드에 저장됩니다. IMAGE_SCN_LNK_NRELOC_OVFL이 설정되고 섹션의 0xffff 재배치 미만인 경우 오류입니다.
IMAGE_SCN_MEM_DISCARDABLE
0x02000000
필요에 따라 섹션을 삭제할 수 있습니다.
IMAGE_SCN_MEM_NOT_CACHED
0x04000000
섹션을 캐시할 수 없습니다.
IMAGE_SCN_MEM_NOT_PAGED
0x08000000
섹션을 페이징할 수 없습니다.
IMAGE_SCN_MEM_SHARED
0x10000000
메모리에서 섹션을 공유할 수 있습니다.
IMAGE_SCN_MEM_EXECUTE
0x20000000
섹션을 코드로 실행할 수 있습니다.
IMAGE_SCN_MEM_READ
0x40000000
섹션을 읽을 수 있습니다.
IMAGE_SCN_MEM_WRITE
0x80000000
섹션에 쓸 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winnt.h(Windows.h 포함)

추가 정보

ImageDirectoryEntryToDataEx

ImageHlp 구조체

ImageRvaToSection

ImageRvaToVa

LOADED_IMAGE