Quando uma pessoa compra um software, seja pela internet ou em CD-
ROM, ele est gravado como um arquivo binrio O arquivo binrio !
gerado a partir do c"digo-fonte, que ! escrito pelo programador em uma linguagem mais acess#vel que o c"digo de mquina $sse arquivo pode ser compreendido pelo c%ip do computador e e&ecutado De fato, ele ! tudo o que o computador precisa para e&ecutar o programa 'or!m o c"digo binrio ! dif#cil - quase imposs#vel - de ser compreendido por seres %umanos $ssa peculiaridade da programa()o de computadores ! que permite, no mundo atual da informtica, a preserva()o do direito autoral sobre software* se voc+ fa, um programa e o vende na forma de arquivos binrios, ningu!m conseguir abrir-los e ver como o programa funciona Com isso, o c"digo em que se escreveu o programa, con%ecido como c"digo-fonte, ! mantido sob dom#nio da empresa -sto funciona assim para a grande maioria dos usurios comuns de computadores Mas uma minoria de programadores e engen%eiros de computa()o consegue abrir arquivos binrios e modificar programas atrav!s da t!cnica con%ecida como .engen%aria reversa. Resumidamente, a engen%aria reversa ! uma tentativa de aprender como um software funciona estudando-o em uma linguagem computacional .primitiva. /muito pr"&ima 0 linguagem binria da mquina1 con%ecida como assembl2, ou assembler O assembl2 pode ser entendido como uma tradu()o quase literal de cada uma das pequenas instru(3es que comp3em um programa de computador 4 detal%ado e enfadon%o, se comparado 0s linguagens modernas mais abstratas, como o C55 ou o 'ascal 4 poss#vel fa,er a convers)o entre o binrio e o 6ssembler -sso gera um c"digo dif#cil de compreender, mas n)o imposs#vel 7e voc+ quiser ver um e&emplo disso em tempo real 8o entanto, % dois aspectos que tornam a engen%aria reversa problemtica* 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 matemticas con%ecidas como algoritmos, cujo patenteamento ! discut#vel, como se fosse poss#vel tamb!m patentear a lei da gravita()o de 8ewton, que ! igualmente uma f"rmula matemtica Ou ainda a f"rmula de 9s:ara, que resolve equa(3es do segundo grau ;m software ! um conjunto de algoritmos escritos em uma forma que o computador entende e e&ecuta como instru(3es, aplicando-as aos dados que o usurio fornece