Resolvendo Todos Os Problemas Do Windows E Outros Programas

Engenharia reversa

Seja reconstruindo o motor de um carro ou diagramando uma frase, as pessoas podem aprender sobre muitas coisas simplesmente desmontando-as e juntando-as novamente. Esse, em poucas palavras, é o conceito por trás da engenharia reversa - quebrar algo para entendê-lo, construir uma cópia ou melhorá-lo.

janelas não ativadas

Um processo que originalmente era aplicado apenas a hardware, a engenharia reversa agora é aplicada a software, bancos de dados e até mesmo ao DNA humano. A engenharia reversa é especialmente importante com hardware e software de computador. Os programas são escritos em uma linguagem, digamos C ++ ou Java, que pode ser compreendida por outros programadores. Mas, para rodar em um computador, eles precisam ser traduzidos por outro programa, chamado de compilador, para os uns e zeros da linguagem de máquina. O código compilado é incompreensível para a maioria dos programadores, mas existem maneiras de converter o código de máquina de volta para um formato mais amigável, incluindo uma ferramenta de software chamada descompilador.



A engenharia reversa é usada para muitos propósitos: como uma ferramenta de aprendizado; como uma forma de fazer produtos novos e compatíveis que sejam mais baratos do que os que estão atualmente no mercado; para tornar o software interoperável de forma mais eficaz ou para conectar dados entre diferentes sistemas operacionais ou bancos de dados; e para descobrir as características não documentadas de produtos comerciais.



Um exemplo famoso de engenharia reversa envolve a Phoenix Technologies Ltd., sediada em San Jose, que em meados da década de 1980 queria produzir um BIOS para PCs que fosse compatível com o BIOS proprietário do IBM PC. (BIOS é um programa armazenado em firmware que é executado quando um PC é inicializado; consulte Technology QuickStudy, 25 de junho)

Para se proteger contra acusações de ter simplesmente (e ilegalmente) copiado o BIOS da IBM, o Phoenix fez a engenharia reversa usando o que é chamado de 'sala limpa' ou abordagem de 'parede chinesa'. Primeiro, uma equipe de engenheiros estudou o BIOS da IBM - cerca de 8 KB de código - e descreveu tudo o que fazia da maneira mais completa possível, sem usar ou fazer referência a nenhum código real. Então, a Phoenix trouxe uma segunda equipe de programadores que não tinham conhecimento prévio do BIOS da IBM e nunca tinham visto seu código. Trabalhando apenas a partir das especificações funcionais da primeira equipe, a segunda equipe escreveu um novo BIOS que operava conforme especificado.



onenote offline

O BIOS Phoenix resultante era diferente do código IBM, mas para todos os efeitos, funcionava de forma idêntica. Usando a abordagem de sala limpa, mesmo que algumas seções do código fossem idênticas, não havia violação de direitos autorais. Phoenix começou a vender seu BIOS para empresas que o usaram para criar os primeiros PCs compatíveis com IBM.

Outras empresas, como a Cyrix Corp. e a Advanced Micro Devices Inc., fizeram a engenharia reversa dos microprocessadores da Intel Corp. para fazer chips compatíveis com a Intel mais baratos.

Poucos sistemas operacionais foram submetidos à engenharia reversa. Com seus milhões de linhas de código - em comparação com os cerca de 32 KB dos BIOSs modernos - a engenharia reversa seria uma opção cara.



Mas os aplicativos estão prontos para a engenharia reversa, uma vez que poucos desenvolvedores de software publicam seu código-fonte. Tecnicamente, uma interface de programação de aplicativo (API) deve tornar mais fácil para os programas trabalharem juntos, mas os especialistas dizem que a maioria das APIs é tão mal escrita que os fabricantes de software de terceiros têm pouca escolha a não ser fazer engenharia reversa dos programas com os quais desejam seu software funcionar, apenas para garantir a compatibilidade.

Ângulos Éticos

A engenharia reversa também pode expor falhas de segurança e práticas de privacidade questionáveis. Por exemplo, a engenharia reversa do dispositivo de digitalização CueCat da Digital: Convergence Corp., de Dallas, revelou que cada leitor tem um número de série exclusivo que permite ao fabricante do dispositivo casar os códigos digitalizados com os dados de registro do usuário e, assim, rastrear os hábitos de cada usuário em grande detalhe - um recurso não divulgado anteriormente.

Recentes movimentos legais apoiados por muitos grandes fabricantes de software e hardware, bem como pela indústria do entretenimento, estão corroendo a capacidade das empresas de fazer engenharia reversa.

e-mail microsoft365.com

'A engenharia reversa é legal, mas existem duas áreas principais nas quais vemos ameaças à engenharia reversa', diz Jennifer Granick, diretora da clínica jurídica e de tecnologia da Stanford Law School em Palo Alto, Califórnia. Uma ameaça, Ainda não testado nos tribunais, vem de licenças compactas que proíbem explicitamente qualquer pessoa que abra ou use o software de fazer engenharia reversa, diz ela.

o google fi está disponível na minha área?

A outra ameaça vem do Digital Millennium Copyright Act (DMCA), que proíbe a criação ou disseminação de ferramentas ou informações que possam ser usadas para quebrar as salvaguardas tecnológicas que protegem o software de ser copiado. Em julho passado, com base nesta lei, a Adobe Systems Inc., sediada em San Jose, pediu ao FBI que prendesse Dmitry Sklyarov, um programador russo, quando ele estava nos EUA para uma conferência. Sklyarov havia trabalhado em um software que violava a criptografia de arquivos de e-books da Adobe.

O fato é que mesmo a engenharia reversa honesta muitas vezes requer a quebra de tais salvaguardas, e o DMCA permite a engenharia reversa para fins de compatibilidade.

“Mas você não tem permissão para ver se o software faz o que deve fazer”, diz Granick, nem pode examiná-lo para fins de investigação científica. Ela faz uma analogia: 'Você tem um carro, mas não pode abrir o capô.'

A abordagem de sala limpa para engenharia reversa

Uma pessoa ou grupo desmonta um dispositivo e descreve o que ele faz com o máximo de detalhes possível, em um nível de abstração mais alto do que o código específico.Essa descrição é então fornecida a outro grupo ou pessoa que não tem absolutamente nenhum conhecimento do dispositivo específico em questão.Essa segunda parte constrói um novo dispositivo com base na descrição. O resultado final é um novo dispositivo que funciona de forma idêntica ao original, mas foi criado sem qualquer possibilidade de copiar especificamente o original.

Schwartz é um escritor freelance em Arlington, Massachusetts. Entre em contato com ele em Mat@PenandCamera.com .