PEHeader 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
PE(이식 가능한 실행 파일) 파일 헤더를 나타냅니다.
public ref class PEHeader sealed
public sealed class PEHeader
type PEHeader = class
Public NotInheritable Class PEHeader
- 상속
-
PEHeader
예제
이 예제에서는 PE 헤더에서 정보를 읽는 방법을 보여줍니다.
// Open the Portable Executable (PE) file
using var fs = new FileStream(@"Example.dll", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
using var peReader = new PEReader(fs);
// Display PE header information
if (peReader.PEHeaders.PEHeader is PEHeader header)
{
Console.WriteLine($"Image size, bytes: {header.SizeOfImage}");
Console.WriteLine($"Image base: 0x{header.ImageBase:X}");
Console.WriteLine($"File alignment: 0x{header.FileAlignment:X}");
Console.WriteLine($"Section alignment: 0x{header.SectionAlignment:X}");
Console.WriteLine($"Subsystem: {header.Subsystem}");
Console.WriteLine($"Dll characteristics: {header.DllCharacteristics}");
Console.WriteLine($"Linker version: {header.MajorLinkerVersion}.{header.MinorLinkerVersion}");
Console.WriteLine($"OS version: {header.MajorOperatingSystemVersion}.{header.MinorOperatingSystemVersion}");
}
설명
PE 파일 헤더 형식은 PE 사양에 의해 정의됩니다. 이 클래스는 속성에서 PEHeader 사용됩니다.
속성
AddressOfEntryPoint |
PE 파일이 메모리로 로드될 때 이미지 기준에 따라 진입점의 주소를 가져옵니다. |
BaseOfCode |
이미지가 메모리에 로드될 때 이미지 기준에 따라 코드 시작 섹션의 주소를 가져옵니다. |
BaseOfData |
이미지가 메모리에 로드될 때 이미지 기준에 따라 데이터 시작 섹션의 주소를 가져옵니다. |
BaseRelocationTableDirectory |
기본 재배치 테이블 항목을 가져옵니다. |
BoundImportTableDirectory |
바인딩된 가져오기 테이블 항목을 가져옵니다. |
CertificateTableDirectory |
특성 인증서 테이블을 가리키는 인증서 테이블 항목을 가져옵니다. |
CheckSum |
이미지 파일 체크섬을 가져옵니다. |
CopyrightTableDirectory |
Copyright Table 항목을 가져옵니다. |
CorHeaderTableDirectory |
CLI 헤더 테이블 항목을 가져옵니다. |
DebugTableDirectory |
디버그 테이블 항목을 가져옵니다. |
DelayImportTableDirectory |
테이블 가져오기 항목을 Delay-Load 가져옵니다. |
DllCharacteristics |
동적 링크 라이브러리의 특성을 가져옵니다. |
ExceptionTableDirectory |
예외 테이블 항목을 가져옵니다. |
ExportTableDirectory |
테이블 내보내기 항목을 가져옵니다. |
FileAlignment |
이미지 파일의 섹션 원시 데이터를 정렬하는 데 사용되는 맞춤 요소(바이트)를 가져옵니다. |
GlobalPointerTableDirectory |
전역 포인터 테이블 항목을 가져옵니다. |
ImageBase |
이미지를 메모리로 로드할 때 이미지의 첫 번째 바이트의 기본 주소를 가져옵니다. |
ImportAddressTableDirectory |
주소 테이블 가져오기 항목을 가져옵니다. |
ImportTableDirectory |
테이블 가져오기 항목을 가져옵니다. |
LoadConfigTableDirectory |
구성 테이블 로드 항목을 가져옵니다. |
Magic |
이미지 파일의 형식을 식별하는 값을 가져옵니다. |
MajorImageVersion |
이미지의 주 버전 번호를 가져옵니다. |
MajorLinkerVersion |
링커 주 버전 번호를 가져옵니다. |
MajorOperatingSystemVersion |
필수 운영 체제의 주 버전 번호를 가져옵니다. |
MajorSubsystemVersion |
하위 시스템의 주 버전 번호를 가져옵니다. |
MinorImageVersion |
이미지의 부 버전 번호를 가져옵니다. |
MinorLinkerVersion |
링커 부 버전 번호를 가져옵니다. |
MinorOperatingSystemVersion |
필수 운영 체제의 부 버전 번호를 가져옵니다. |
MinorSubsystemVersion |
하위 시스템의 부 버전 번호를 가져옵니다. |
NumberOfRvaAndSizes |
PEHeader의 나머지 부분에 있는 데이터 디렉터리 항목 수를 가져옵니다. 각 항목은 위치와 크기를 설명합니다. |
ResourceTableDirectory |
리소스 테이블 항목을 가져옵니다. |
SectionAlignment |
메모리에 로드되는 섹션의 맞춤(바이트)을 가져옵니다. |
SizeOfCode |
코드(텍스트) 섹션의 크기 또는 모든 코드 섹션의 합계(여러 섹션이 있는 경우)를 가져옵니다. |
SizeOfHeaders |
FileAlignment의 배수로 반올림된 MS DOS 스텁, PE 헤더 및 섹션 헤더의 결합된 크기를 가져옵니다. |
SizeOfHeapCommit |
커밋할 로컬 힙 공간의 크기를 가져옵니다. |
SizeOfHeapReserve |
예약할 로컬 힙 공간의 크기를 가져옵니다. SizeOfHeapCommit만 커밋되고, 나머지는 예약 크기에 도달할 때까지 한 번에 한 페이지씩 사용할 수 있습니다. |
SizeOfImage |
이미지가 메모리에 로드될 때 모든 헤더를 포함한 이미지의 크기(바이트)를 가져옵니다. |
SizeOfInitializedData |
초기화된 데이터 섹션의 크기 또는 모든 초기화된 데이터 섹션의 합계(여러 데이터 섹션이 있는 경우)를 가져옵니다. |
SizeOfStackCommit |
커밋할 스택의 크기를 가져옵니다. |
SizeOfStackReserve |
예약할 스택의 크기를 가져옵니다. SizeOfStackCommit만 커밋되고, 나머지는 예약 크기에 도달할 때까지 한 번에 한 페이지씩 사용할 수 있습니다. |
SizeOfUninitializedData |
초기화되지 않은 데이터 섹션(BSS)의 크기 또는 모든 초기화된 데이터 섹션의 합계(여러 BSS 섹션이 있는 경우)를 가져옵니다. |
Subsystem |
이 이미지를 실행하는 데 필요한 하위 시스템의 이름을 가져옵니다. |
ThreadLocalStorageTableDirectory |
Thread-Local Storage 테이블 항목을 가져옵니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
.NET