Ir para conteúdo
Faça parte da equipe! (2024) ×

Detectando um PE Válido


AceStryker
 Compartilhar

Posts Recomendados

Introdução

Hoje eu vou ensina-los a checar se um programa é um PE(Portable Executable), achei um tutorial a respeito no site Win32Assembly e resolvi traduzir e explicar com minhas palavras para cá.

 

Teoria

Como podemos descobrir se um arquivo é um PE ou não?Você pode checar toda a estrutura dele ou fazer uma checagem da parte crucial e supormos que ele é um PE.

 

A parte crucial que vamos checar é o cabeçalho do PE, o chamado PE Header, ou IMAGE_NT_HEADERS.Vejamos sua estrutura:

É necessário se cadastrar para acessar o conteúdo.

 

Signature é a DWORD que contém os valores 50h, 45h, 00h e 00h.Para simplificar, é onde contém o texto "PE" com dois 00's de terminação.É isso que vamos usar para identificar se o arquivo é um PE

FileHeader é a estrutura onde contém as informações sobre o layout físico do programa, tais como o número de estruturas entre outros

OptionalHeader é a estrutura onde contém as informações do layout lógico do programa, apesar de ter o nome Opcional, é extremamente difícil achar um programa sem o mesmo.

 

Nosso objetivo agora é claro, se o valor do Signature do IMAGE_NT_HEADERS é igual ao PE seguindo de 2 00's então é um PE válido.Para facilitar tudo a Microsoft definiu uma constante chamada de IMAGE_NT_SIGNATURE que podemos usar.Vejamos a estrutura:

 

É necessário se cadastrar para acessar o conteúdo.

 

A nossa próxima questão é saber onde o cabeçalho fica.A resposta é simples:o cabeçalho MZ-DOS(IMAGE_DOS_HEADER) tem um arquivo de deslocamento para o PE Header.Você pode verificar no windows.inc.O e_lfanew membro da IMAGE_DOS_HEADER contém o arquivo deslocamento do cabeçalho PE.

 

Fiz o exemplo:

.asm

 

É necessário se cadastrar para acessar o conteúdo.

 

 

 

 

 

.inc

 

É necessário se cadastrar para acessar o conteúdo.

 

 

.**

 

Este é o mesmo do BASE então nem vou postar.

 

 

Bom, espero que tenham gostado...

Qualquer duvida posta ai.

 

Acesse também o post original:

Iczelion's PE Tutorial 2: Detecting a Valid PE File

Link para o comentário
Compartilhar em outros sites

  • 2 semanas atrás...
Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.