Definição de Engenharia Reversa
Quase todos os programas comerciais são distribuÃdos apenas em formato binário, sem o código fonte. Ou seja, você recebe o programa já compilado em linguagem de máquina, pronto para ser executado, mas não tem acesso ao arquivo que permitiria ver como o programa funciona e alterá-lo.
A engenharia reversa é uma técnica usada para tentar obter o código fonte do programa a partir do arquivo já compilado. É um processo extremamente trabalhoso, mas já foi responsável pela descoberta de muitos segredos industriais. O sistema de proteção contra cópias usado nos DVDs é um bom exemplo; um programador Russo conseguiu usar engenharia reversa para ter acesso ao programa que cria os algoritmos, entendê-lo e descobrir uma forma de burla-lo. Depois disso, ficou tão fácil que a disputa passou a ser quem consegue fazer o programa que quebre o "sistema secreto" com menos linhas de código :-)