Se as linguagens de programação fossem carros...
2915 registros
7 hoje
17 nesta semana
24 neste mês| 87,3% | | Brasil |
| 9,9% | | Portugal |
| 0,9% | | EUA |
| 0,2% | | Espanha |
| 0,1% | | Japão |
| Hoje: | 1088 |
| Ontem: | 1299 |
| Esta semana: | 5093 |
| Semana passada: | 6313 |
| Este mês: | 8560 |
| Mês passado: | 55805 |
| Total: | 168881 |
|
Dom 20 Ago 2006 17:13 |
|
|
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 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 PEUm 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 usadosAtualmente (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 compactadoMuitas 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. ![]() 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 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 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 ) |