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] 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.Engenharia Reversa De Software