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...