PEHeader Classe

Definição

Representa o cabeçalho do ficheiro Portable Executable (PE).

public ref class PEHeader sealed
public sealed class PEHeader
type PEHeader = class
Public NotInheritable Class PEHeader
Herança
PEHeader

Exemplos

Este exemplo mostra como ler informação do cabeçalho 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}");
}

Observações

O formato do cabeçalho do ficheiro PE é definido pela especificação PE. Esta classe é utilizada pela PEHeader propriedade.

Propriedades

Name Description
AddressOfEntryPoint

Obtém o endereço do ponto de entrada em relação à base da imagem quando o ficheiro PE é carregado na memória.

BaseOfCode

Obtém o endereço da secção do início do código em relação à base da imagem quando a imagem é carregada na memória.

BaseOfData

Obtém o endereço da secção do início dos dados em relação à base da imagem quando a imagem é carregada na memória.

BaseRelocationTableDirectory

Recebe a entrada da Tabela de Relocações de Bases.

BoundImportTableDirectory

Recebe a entrada da Tabela de Importação Vinculada.

CertificateTableDirectory

Recebe a entrada da Tabela de Certificados, que aponta para uma tabela de certificados de atributos.

CheckSum

Obtém a soma de verificação do ficheiro de imagem.

CopyrightTableDirectory

Recebe a entrada da Tabela de Direitos de Autor.

CorHeaderTableDirectory

Recebe a entrada da Tabela de Cabeçalhos CLI.

DebugTableDirectory

Recebe a entrada da Tabela de Depuração.

DelayImportTableDirectory

Recebe a entrada Delay-Load Tabela de Importação.

DllCharacteristics

Obtém as características de uma biblioteca de links dinâmicos.

ExceptionTableDirectory

Recebe a entrada da Tabela de Exceções.

ExportTableDirectory

Recebe a entrada da Tabela de Exportação.

FileAlignment

Obtém o fator de alinhamento (em bytes) que é usado para alinhar os dados brutos das secções no ficheiro de imagem.

GlobalPointerTableDirectory

Recebe a entrada da Tabela Global de Ponteiros.

ImageBase

Obtém o endereço preferido do primeiro byte da imagem quando esta é carregada na memória.

ImportAddressTableDirectory

Recebe a entrada da Tabela de Endereços de Importação.

ImportTableDirectory

Recebe a entrada da Tabela de Importação.

LoadConfigTableDirectory

Recebe a entrada da Tabela de Configuração de Carga.

Magic

Obtém um valor que identifica o formato do ficheiro de imagem.

MajorImageVersion

Obtém o número principal da versão da imagem.

MajorLinkerVersion

Recebe o número de versão principal do linker.

MajorOperatingSystemVersion

Obtém o número de versão principal do sistema operativo necessário.

MajorSubsystemVersion

Obtém o número de versão principal do subsistema.

MinorImageVersion

Obtém o número de versão menor da imagem.

MinorLinkerVersion

Recebe o número de versão menor do linker.

MinorOperatingSystemVersion

Obtém o número de versão menor do sistema operativo necessário.

MinorSubsystemVersion

Obtém o número de versão menor do subsistema.

NumberOfRvaAndSizes

Obtém o número de entradas do data-diretório no restante do PEHeader. Cada um descreve um local e tamanho.

ResourceTableDirectory

Recebe a entrada da Tabela de Recursos.

SectionAlignment

Obtém o alinhamento (em bytes) das secções quando são carregadas na memória.

SizeOfCode

Obtém o tamanho da secção de código (texto), ou a soma de todas as secções de código se existirem múltiplas secções.

SizeOfHeaders

Obtém o tamanho combinado de um stub MS DOS, cabeçalho PE e cabeçalhos de secção arredondado para múltiplos de FileAlignment.

SizeOfHeapCommit

Obtém o tamanho do espaço local do heap para fazer o commit.

SizeOfHeapReserve

Obtém o tamanho do espaço do heap local para reservar. Apenas SizeOfHeapCommit é comprometido; o restante é disponibilizado página a página até atingir o tamanho da reserva.

SizeOfImage

Obtém o tamanho (em bytes) da imagem, incluindo todos os cabeçalhos, à medida que a imagem é carregada na memória.

SizeOfInitializedData

Obtém o tamanho da secção de dados inicializada, ou a soma de todas essas secções se existirem múltiplas secções de dados.

SizeOfStackCommit

Obtém o tamanho da pilha para comprometer.

SizeOfStackReserve

Faz com que o tamanho da pilha fique reservado. Apenas SizeOfStackCommit é comprometido; o restante é disponibilizado página a página até atingir o tamanho da reserva.

SizeOfUninitializedData

Obtém o tamanho da secção de dados não inicializada (BSS), ou a soma de todas essas secções se existirem múltiplas secções BSS.

Subsystem

Obtém o nome do subsistema necessário para executar esta imagem.

ThreadLocalStorageTableDirectory

Recebe a entrada Thread-Local Storage Table.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a