terça-feira, 5 de agosto de 2008

Já sabemos que os compiladores são importantes programas computacionais que a partir de um código escrito em uma linguagem criam semanticamente equivalente porém em outra linguagem. Visto isso, definiremos agora o que é um descompilador.

Descompilador é um programa de computador que realiza a operação inversa de um compilador, transformando código objeto em código fonte.O termo entretanto é mais utilizado para designar programas de computador que traduzem código de máquina (programas executáveis) em código fonte em uma linguagem de programação de alto nível. Em comparação, em desmontador transforma código de máquina em linguagem de montagem. Esse programa pode ser útil caso perca-se o código fonte de um programa de computador. O sucesso da descompilação depende da quantidade de informação presente no código e da sofisticação da rotina de análise. A primeira consideração a ser feita quando se fala de engenharia reversa é a legalidade dessa ação. Muitos programas de computador são protegidos pelas leis de Direitos Autorais. Então, por que se fazer uma decompilação? Com que objetivo transformaríamos salsichas em porcos novamente?Encontrar vulnerabilidades, certificar-se da não existência de software mal intencionados, aprender algum algoritmo, otimizar o software para uma determinada plataforma, resolver 'bugs' ou mesmo para adicionar novas funcionalidades, são alguns dos motivos.De qualquer forma, poder contar com ferramentas como essa pode aumentar muito o aprendizado de programadores de qualquer nível.Existem muito descompiladores no mercados, alguns deles gratuitos, por exemplo: JCavaj Java Decompiler 1.10 . Em http://www.program-transformation.org pode ser encontrada uma lista dos principais descompiladores dividos nas seguintes categorias:

  • Java bytecodes
  • .NET bytecodes
  • Python bytecodes
  • Visual Basic
  • Delphi
  • Foxbase/FoxPro
  • Assembly language
  • Machine code
  • Specific compiler generated programs


Encontre mais informações nas fontes:

http://pt.wikipedia.org/wiki/Compilador
http://pt.wikipedia.org/wiki/Desmontador
http://pt.wikipedia.org/wiki/Descompilador
http://www.dicas-l.com.br/dicas-l/20050520.php

Nenhum comentário: