Aldeia Numaboa
Um portal diferente em Português do Brasil
Informática da Aldeia

Tutoriais

Na Aldeia

Há 81 visitantes online

2915 registros
7 hoje
17 nesta semana
24 neste mês

Boas vindas: LETINHA

Estatística

Artigos: 863
Artigos lidos: 4132011
Arquivados: 42
Downloads: 417
Baixados: 164452
Glossário: 1199
Bibliografia: 24
JoomlaWatch Stats 1.2.7 by Matej Koval

Visitas de onde?

87,3%Brasil Brasil
9,9%Portugal Portugal
0,9%EUA EUA
0,2%Espanha Espanha
0,1%Japão Japão

Visitantes

Hoje: 1088
Ontem: 1299
Esta semana: 5093
Semana passada: 6313
Este mês: 8560
Mês passado: 55805
Total: 168881

Registro/Login

Para fazer login ou registrar-se

Usuários registrados têm algumas regalias!

Dom

20

Ago

2006


17:13

Compactadores PE PDF Imprimir Indique esta página
Avaliação: / 14
PiorMelhor 
Oficina de Informática - Ferramentas de Engenharia Reversa
Escrito por vovó Vicki   


Nível intermediário Compactadores PE funcionam como zipadores de executáveis com uma diferença: arquivos zip, na sua forma compactada, ficam inacessíveis enquanto que executáveis compactados, apesar de "encolhidos", continuam funcionando normalmente.

Mas, antes de entrar em maiores detalhes, que tal saber o que é o formato PE?

O formato Portable Executable (daí PE), é o formato de arquivos executáveis usados no sistema operacional Windows de 32 e de 64 bits. O termo portable deve-se à portabilidade no sistema de 32 bits (e, por extensão, ao de 64 bits). Basicamente, o formato PE é uma estrutura de dados que mantém encapsuladas as informações que o carregador do Windows necessita para administrar o código executável. Isto inclui as referências a bibliotecas dinâmicas, a tabelas de exportação e importação da API e aos dados de gerenciamento de recursos. O formato PE inclui, entre outros tipos, os arquivos EXE, DLL e OBJ.

Se tudo isto estiver parecendo muito esotérico para o seu gosto, desista do resto do texto... não adianta insistir. Mas, se você ainda estiver acompanhando a linha de raciocínio, então vai dar para encarar o próximo tópico

O que é um compactador PE

Um compactador PE comprime e/ou esconde o conteúdo de um arquivo PE porque rearranja as seções do arquivo binário eliminando seções vazias e/ou compactando algumas partes. Além disto, insere suas próprias rotinas de descompactação. O efeito desta alteração é a redução do arquivo executável e o fenômeno é que, apesar de ter seu tamanho diminuído, ele continua sendo executável!

Diminuir o tamanho de executáveis tornou-se prático por causa da Internet. É muito melhor fazer um download de um mega do que fazer o download de vários megabytes. Esconder o conteúdo de executáveis também tem várias vantagens: limita o roubo de código, esconde endereços de rede, URLs, canais de IRC e dificulta a alteração do código (como a aplicação de ferramentas de cracking que alteram limites de tempo de uso ou registros de licença).

Os compactadores mais usados

Atualmente (estou falando de 2006) os compactadores mais usados são o UPX, o Armadillo/SoftwarePassport, o Aspack/Asprotect, o Softwrap, o Petite e o PeLock. Em menor escala encontramos o Shrinker e o WWPack.

O UPX é um freeware de código aberto. Muito eficiente, costumo usá-lo com frequência no software de minha autoria que disponibilizo para os usuários da Aldeia Numaboa. O objetivo é apenas "economizar" no download - a segurança é coisa secundária. Aliás, querer proteger qualquer código usando o UPX é utopia porque existem inúmeros descompactadores que revertem o processo justamente porque o UPX é um compactador de código aberto...

Os demais possuem várias opções de proteção e são largamente difundidos. Apesar de serem comerciais, os respectivos descompactadores continuam sendo os maiores entraves.

Como descobrir que um executável foi compactado

Muitas vezes, quando submetemos um executável a um debugger ou decompilador, recebemos uma mensagem qualquer informando que o arquivo não segue os padrões usuais de um PE e que provavelmente esteja compactado. Até aí, tudo bem. Mas, como descobrir qual compactador foi usado? É neste momento que o sonho de qualquer curioso é possuir um programinha mágico que dê uma dica confiável.

Eu também me rendi a esta tentação e saí à procura de um aplicativo que me ajudasse a desvendar este mistério. Tive a sorte de encontrar o PEid, um freeware disponibilizado por uma equipe de desenvolvedores que mantém este software caprichado. O identificador de PE analisa principalmente as seções do PE compactado e compara seus achados com padrões num banco de assinaturas. Atualmente existem mais de 600 e o interessante é que o usuário pode ampliar o banco de dados com novas assinaturas.

Antes de mais nada, dê uma chegadinha no site do PEid ou na seção de downloads/informática/utilitários aqui da Aldeia e baixe o aplicativo. A instalação não tem nada de especial: basta abrir o arquivo zip numa pasta própria. Depois disso, execute o PEid, clique no botão superior direito [...] e escolha um executável qualquer. Neste laboratório usei um programinha do tipo crackme compactado com o UPX. Se você quiser usar o mesmo programa, faça o download do Rebelx crackme três na seção de downloads/informatica/crackme/crackme para iniciantes.

PEid
Identificador de PE

Observe que na área de texto logo acima dos botões o PEid indica "UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo", ou seja, o executável foi compactado com o UPX. Além disto, também é possível ver as seções do PE: clique no botão [>] do lado direito de EP Section (onde a primeira seção mostrada é UPX1) para abrir a janela mostrada logo abaixo.

Seções de PE
Seções do PE

Estas são algumas das "marcas" deixadas pelo compactador que o PEid identificou. O executável analisado possui três seções: UPX0, UPX1 e .rsrc. Garanto que UPX0 e UPX1 não estão lá por acaso O Aspack costuma criar uma seção .aspack e outra cujo nome pode ser determinado (geralmente aparece como .adata, seu nome default). O PECompact cria as seções PEC2 e PECompact2... e assim por diante.

Bem vindo ao mundo dos identificadores. Explore o PEid à vontade, instale os plugins oferecidos no site do projeto e divirta-se! É uma excelente ferramenta, principalmente para ser usada nos crackme.

Última atualização ( Qui, 03.04.2008 14:55 )
 

Topo

Topo