Engenharia reversa
Origem: Wikipédia, a enciclopédia livre.
A engenharia reversa consiste em usar a criatividade para, a partir de uma solução pronta, retirar todos os possíveis conceitos novos ali empregados.
É o processo de análise de um artefato (um aparelho, um componente elétrico, um programa de computador, etc.) e dos detalhes de seu funcionamento, geralmente com a intenção de construir um novo aparelho ou programa que faça a mesma coisa, sem realmente copiar alguma coisa do original.
Objetivamente a engenharia reversa consiste em, por exemplo, desmontar uma máquina para descobrir como ela funciona.
Ou então podemos transformar uma simples aplicação de algoritmos em binários ou hexadecimais para facilitar ou dificultar, dependendo do objetivo de quem está colocando em prática uma engenharia reversa.
[editar] Engenharia reversa de software
O processo de Engenharia Reversa (ER) pode auxiliar na recuperação de dados, por exemplo: Softwares antigos nos quais os desenvolvedores originais não mais trabalham podem ter seus códigos-fonte recuperados com a finalidade de realizar ajustes em partes do programa.
Alguns exemplos de tal pratica são jogos antigos (Como os de Atari, Mega Drive,Super Nintendo etc.). A ER é freqüentemente associada a questões de segurança também, pois por meio de suas técnicas pode explorar o código dos programas afim de averiguar se há códigos maléficos, arveriguar se o código original de um software não sofreu alteração ou injeção de rotinas ocultas (tal como vírus de computador fazem).
No que diz respeito a recuperação de dados ainda pode-se muito explorar através da ER. Um sistema de arquivos criptografado pode ser entendido e ter seus recursos utilizados para recuperação de importantes dados perdidos.
Em alguns países a prática de ER é considerada ilegal e alguns praticantes interessam-se em obter acesso não autorizado a recursos de software não oferecidos gratuitamente pelos fabricantes que vendem o produto. Tal prática é denominada Cracking [1]. Por outro lado, a ER tem sido utilizada como ferramenta de proteção contra a própria ER praticada de forma ilegal. A partir de técnicas aplicadas nesta área é possível modelar melhores proteções para o software como antidescompiladores, códigos mutantes e armadilhas
[editar] Aplicações práticas notórias
A Engenharia reversa, foi amplamente utilizada durante a criação dos drivers para todo tipo de hardware, pelos desenvolvedores do Sistema Operacional GNU/Linux, mais especificamente o kernel Linux, devido ao fato dos fabricantes de hardware, a principio, não reconhecerem o Linux como um sistema operacional onde valesse a pena investir tempo e dinheiro no desenvolvimento de drivers. Os conhecimentos recolhidos com o grande trabalho de todo tipo de colaborador pelo mundo, geraram um grande "banco de dados" sobre os mais diversos tipos de hardware, possibilitando que os desenvolvedores de novos SO's não precisassem refazer este grande trabalho. Até hoje algum hardware precisa ser hackeado para descobrir como corrigir um bug ou um recurso oculto. Outro caso clássico no mundo linux é o software samba, que permite a uma máquina rodando linux ou outro unix-like (solaris, freebsd) se comportar como um verdadeiro servidor windows. O samba foi completamente desenvolvido por engenharia reversa, simplesmente com o gigantesco trabalho de analisar o tráfego de dados entre um micro rodando windows e um servidor rodando windows server.
Por derivação, extrai-se a expressão Engenharia Jurídica Reversa, desenvolvida pelo engenheiro e advogado Leônidas Corrêia das Neves, para designar o método através do qual, grupos ou pessoas altamente qualificadas tecnicamente (direito, economia, matemática e ciências afins), partem das excludentes das ilicitudes penais e civis, para a prática de atos que a legislação penal e civil qualifica como conduta criminosa. Cite-se, por exemplo, a Fraude de Cias Seguradoras com o objetivo de frustar o pagamento das indenizações contratadas.
Referências
- ↑ The Reverser

