다음을 통해 공유


PEReader 클래스

정의

PE(이식 가능한 실행 파일) 파일에 대한 판독기를 제공합니다.

public ref class PEReader sealed : IDisposable
public sealed class PEReader : IDisposable
type PEReader = class
    interface IDisposable
Public NotInheritable Class PEReader
Implements IDisposable
상속
PEReader
구현

설명

주의

이 형식은 신뢰할 수 없는 입력을 처리하도록 설계되지 않았습니다. 형식이 잘못되었거나 악의적인 PE 파일은 범위를 벗어난 메모리 액세스, 충돌 또는 중단을 포함하여 예기치 않은 동작을 일으킬 수 있습니다. 신뢰할 수 있는 PE 파일 또는 이미지에만 사용합니다 PEReader .

구현은 스레드로부터 안전합니다. 즉, 여러 스레드가 판독기에서 병렬로 데이터를 읽을 수 있습니다. 판독기 삭제는 스레드로부터 안전하지 않습니다(참조 Dispose()).

생성자

Name Description
PEReader(Byte*, Int32, Boolean)

메모리에 저장된 PE 이미지를 통해 이식 가능한 실행 파일 판독기를 만듭니다. 플래그는 이미지가 이미 메모리에 로드되었는지 여부를 나타냅니다.

PEReader(Byte*, Int32)

메모리에 저장된 PE 이미지를 통해 이식 가능한 실행 파일 판독기를 만듭니다.

PEReader(ImmutableArray<Byte>)

바이트 배열에 저장된 PE 이미지를 통해 이식 가능한 실행 파일 판독기를 만듭니다.

PEReader(Stream, PEStreamOptions, Int32)

스트림의 현재 위치에서 시작하여 지정된 크기의 PE 이미지 위에 이식 가능한 실행 파일 판독기를 만듭니다.

PEReader(Stream, PEStreamOptions)

현재 위치에서 시작하여 스트림의 끝에서 끝나는 스트림에 저장된 PE 이미지 위에 이식 가능한 실행 파일 판독기를 만듭니다.

PEReader(Stream)

스트림에 저장된 PE 이미지를 통해 이식 가능한 실행 파일 판독기를 만듭니다.

속성

Name Description
HasMetadata

PE 이미지에 CLI 메타데이터가 포함되어 있는지를 나타내는 값을 가져옵니다.

IsEntireImageAvailable

판독기에서 전체 PE 이미지에 액세스할 수 있는지를 나타내는 값을 가져옵니다.

IsLoadedImage

OS 로더에 의해 PE 이미지가 메모리에 로드되었는지를 나타내는 값을 가져옵니다.

PEHeaders

PE 헤더를 가져옵니다.

메서드

Name Description
Dispose()

판독기에서 할당한 모든 메모리를 삭제합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
GetEntireImage()

PEMemoryBlock 전체 PE 이미지를 포함하는 개체를 가져옵니다.

GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetMetadata()

CLI 메타데이터가 포함된 PE 섹션을 로드합니다.

GetSectionData(Int32)

지정된 상대 가상 주소가 포함된 PE 섹션을 메모리에 로드하고 해당 주소에서 시작하여 포함하는 섹션의 끝에서 끝나는 메모리 블록을 반환합니다.

GetSectionData(String)

지정된 이름의 PE 섹션을 메모리에 로드하고 섹션에 걸쳐 있는 메모리 블록을 반환합니다.

GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ReadCodeViewDebugDirectoryData(DebugDirectoryEntry)

지정된 디버그 디렉터리 항목에서 가리키는 데이터를 읽고 CodeView로 해석합니다.

ReadDebugDirectory()

모든 디버그 디렉터리 테이블 항목을 읽습니다.

ReadEmbeddedPortablePdbDebugDirectoryData(DebugDirectoryEntry)

지정된 디버그 디렉터리 항목에서 가리키는 데이터를 읽고 포함된 이식 가능한 PDB Blob으로 해석합니다.

ReadPdbChecksumDebugDirectoryData(DebugDirectoryEntry)

지정된 디버그 디렉터리 항목에서 가리키는 데이터를 읽고 PDB 체크섬 항목으로 해석합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
TryOpenAssociatedPortablePdb(String, Func<String,Stream>, MetadataReaderProvider, String)

이 PE 이미지와 연결된 이식 가능한 PDB를 엽니다.

확장명 메서드

Name Description
GetMetadataReader(PEReader, MetadataReaderOptions, MetadataStringDecoder)

지정된 메타데이터 읽기 구성 및 인코딩 구성이 있는 PEReader메타데이터 판독기를 가져옵니다.

GetMetadataReader(PEReader, MetadataReaderOptions)

에서 지정된 메타데이터 읽기 구성이 있는 메타데이터 판독기를 PEReader가져옵니다.

GetMetadataReader(PEReader)

에서 a를 MetadataReaderPEReader가져옵니다.

GetMethodBody(PEReader, Int32)

지정된 RVA(상대 가상 주소)를 사용하여 메서드의 본문 블록을 반환합니다.

적용 대상