Definição – o que significa engenharia reversa?
A engenharia reversa, na programação de computadores, é uma técnica de análise de software com o objetivo de identificar e compreender as partes que o compõem. Os motivos usuais para fazer a engenharia reversa de um software são recriar o programa, construir algo semelhante a ele, explorar suas fraquezas ou fortalecer suas defesas.
Definirtec explica engenharia reversa
Como o software proprietário fechado nunca vem com documentação que revele o código-fonte usado para criá-lo, as pessoas usam a engenharia reversa sempre que desejam entender o funcionamento interno do software.
Alguns hackers usam engenharia reversa para encontrar os pontos fracos dos programas que podem explorar.
Outros hackers usam engenharia reversa para localizar pontos fracos com a intenção de fortalecer as defesas ali.
As empresas de software com produtos concorrentes fazem engenharia reversa dos programas de seus concorrentes para descobrir onde e como melhorias podem ser feitas em seus próprios produtos. Algumas empresas usam a engenharia reversa quando ainda não têm produtos semelhantes, para criar seus próprios produtos.
Aqueles que pretendem construir seu próprio produto com base em um existente, geralmente preferem a engenharia reversa em vez de criar do zero, porque uma vez que as peças e as dependências são identificadas, o processo de reconstrução tende a ser muito mais fácil.
Nos Estados Unidos, a engenharia reversa de software é protegida pela exceção de uso justo na lei de direitos autorais.