PEHeader Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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) |