CARTA AO LEITORNOTÍCIASENTREVISTASREPORTAGENSRESENHASCRÍTICA DA MÍDIALINKS DE C&TCADASTRE-SE NA REVISTABUSCA POR PALAVRA-CHAVE
   

 
   
 

 



A engenharia reversa e o De-CSS

Quando uma pessoa compra um software, seja pela internet ou em CD-ROM, ele está gravado como um arquivo binário. O arquivo binário é gerado a partir do código-fonte, que é escrito pelo programador em uma linguagem mais acessível que o código de máquina. Esse arquivo pode ser compreendido pelo chip do computador e executado. De fato, ele é tudo o que o computador precisa para executar o programa.

Porém o código binário é difícil - quase impossível - de ser compreendido por seres humanos. Essa peculiaridade da programação de computadores é que permite, no mundo atual da informática, a preservação do direito autoral sobre software: se você faz um programa e o vende na forma de arquivos binários, ninguém conseguirá abrir-los e ver como o programa funciona. Com isso, o código em que se escreveu o programa, conhecido como código-fonte, é mantido sob domínio da empresa.

Isto funciona assim para a grande maioria dos usuários comuns de computadores. Mas uma minoria de programadores e engenheiros de computação consegue abrir arquivos binários e modificar programas através da técnica conhecida como "engenharia reversa".

Resumidamente, a engenharia reversa é uma tentativa de aprender como um software funciona estudando-o em uma linguagem computacional "primitiva" (muito próxima à linguagem binária da máquina) conhecida como assembly, ou assembler. O assembly pode ser entendido como uma tradução quase literal de cada uma das pequenas instruções que compõem um programa de computador. É detalhado e enfadonho, se comparado às linguagens modernas mais abstratas, como o C++ ou o Pascal.

É possível fazer a conversão entre o binário e o Assembler. Isso gera um código difícil de compreender, mas não impossível. Se você quiser ver um exemplo disso em tempo real, use o programa Debug, disponível no MS-DOS.

No entanto, há dois aspectos que tornam a engenharia reversa problemática: o primeiro é que ela é proibida em alguns países, por ser entendida como violação de direitos autorais. O outro problema é mais sutil: um programa é uma tradução, para o computador, de fórmulas matemáticas conhecidas como algoritmos, cujo patenteamento é discutível, como se fosse possível também patentear a lei da gravitação de Newton, que é igualmente uma fórmula matemática. Ou ainda a fórmula de Báskara, que resolve equações do segundo grau. Um software é um conjunto de algoritmos escritos em uma forma que o computador entende e executa como instruções, aplicando-as aos dados que o usuário fornece.

Nos EUA e Europa a briga envolve grandes companhias, como a Microsoft e comunidades de programadores de software livre unidos pela internet. Destas, uma das mais atuantes é a do Linux, forte na Europa, onde há muita resistência aos produtos Microsoft, e a Free Software Foundation que existe desde 1985, distribuindo software livre, sistemas operacionais inteiros, totalmente gratuitos.

Sobre isso, veja a opinião de Carlos Paniago, administrador de rede da Embrapa, uma empresa que utiliza sistemas operacionais livres em seus computadores...

 




 

Esta reportagem tem
1, 2, 3, 4, 5, 6, documentos
Bibliografia | Créditos
 

 

 


Atualizado em 01/06/00

 

 

 
http://www.epub.org.br/comciencia
comciencia@epub.org.br

© 2000
Universidade Estadual de Campinas
Campinas, Brasil