Qual é o propósito da engenharia reversa?

Qual é o propósito da engenharia reversa?
Leia e descubra Qual é o propósito da engenharia reversa? e ganhe mais conhecimento com nossos saiba mais.

Compartilhe esse post

O objetivo da engenharia reversa é descobrir como funciona um objeto ou sistema. Existem vários motivos para fazer isso. A engenharia reversa pode ser usada para aprender como algo funciona e para recriar o objeto ou para criar um objeto semelhante com melhorias adicionais.

Descubra Qual é o propósito da engenharia reversa?

Freqüentemente, o objetivo da engenharia reversa de software ou hardware é encontrar uma maneira de criar um produto semelhante de maneira mais barata ou porque o produto original não está mais disponível. A engenharia reversa em tecnologia da informação também é usada para resolver problemas de compatibilidade e fazer o hardware ou software funcionar com outro hardware, software ou sistema operacional com o qual não era originalmente compatível.

Qual é o propósito da engenharia reversa?


O software Logic Pro da Apple, que permite aos músicos compor, gravar, arranjar, editar e mixar músicas, é um bom exemplo. O Logic Pro está disponível apenas para dispositivos Mac e é relativamente caro. O programa possui vários instrumentos digitais proprietários.

Com um pouco de investigação, um programador poderia fazer engenharia reversa desses instrumentos digitais, descobrir como eles funcionam e personalizá-los para uso no Logic Pro ou torná-los interoperáveis com outro software de música compatível com Windows.

Como funciona o processo de engenharia reversa?

O processo de engenharia reversa é específico do objeto no qual está sendo executado. Contudo, independentemente do contexto, existem três passos gerais comuns a todos os esforços de engenharia inversa. Eles incluem:

Extração de informações. O objeto que está sendo submetido à engenharia reversa é estudado, informações sobre seu design são extraídas e essas informações são examinadas para determinar como as peças se encaixam. Na engenharia reversa de software, isso pode exigir a coleta de código-fonte e documentos de design relacionados para estudo. Também pode envolver o uso de ferramentas, como um desmontador, para desmembrar o programa em suas partes constituintes.
Modelagem.

As informações coletadas são abstraídas em um modelo conceitual, com cada parte do modelo explicando sua função na estrutura geral. O objetivo desta etapa é pegar informações específicas do original e abstraí-las em um modelo geral que possa ser usado para orientar o projeto de novos objetos ou sistemas. Na engenharia reversa de software, isso pode assumir a forma de um diagrama de fluxo de dados ou de um gráfico de estrutura.

Análise. Isto envolve revisar o modelo e testá-lo em vários cenários para garantir que seja uma abstração realista do objeto ou sistema original. Na engenharia de software, isso pode assumir a forma de testes de software. Uma vez testado, o modelo pode ser implementado para reengenharia do objeto original.

A engenharia reversa de software envolve o uso de diversas ferramentas. Uma ferramenta é um dumper hexadecimal, que imprime ou exibe os números binários de um programa em hexadecimal. Ao conhecer os padrões de bits que representam as instruções do processador, bem como os comprimentos das instruções, a engenharia reversa pode identificar partes de um programa para ver como funcionam.

Outra ferramenta de engenharia reversa de software é o desmontador. Ele lê o código binário e exibe cada instrução executável como texto.

Um desmontador não pode dizer a diferença entre uma instrução executável e os dados que o programa usa; portanto, um depurador é usado para evitar que o desmontador desmonte as partes de dados de um programa. Essas ferramentas podem ser usadas por um cracker de computador e obter acesso a um sistema de computador ou causar outros danos.

Qual é o propósito da engenharia reversa?


O projeto auxiliado por computador (CAD) é uma técnica de engenharia reversa usada para recriar uma peça fabricada quando o projeto original não está mais disponível. Envolve a produção de imagens 3D da peça para que ela possa ser remanufaturada.

Uma máquina de medição por coordenadas mede a peça e, à medida que ela é medida, uma imagem 3D da estrutura de arame é gerada usando software CAD e exibida em um monitor. Após a conclusão da medição, a imagem da estrutura de arame é dimensionada. Qualquer peça pode sofrer engenharia reversa usando esses métodos.

A engenharia reversa varia dependendo de onde está sendo aplicada e do propósito da engenharia reversa da tecnologia. Exemplos comuns incluem:

Programas

Existem vários casos em que a engenharia reversa é usada para desmontar software. Um exemplo comum é adaptar um programa escrito para uso com um microprocessador para outro. Outros exemplos incluem a reconstrução de código-fonte perdido, o estudo de como um programa executa determinadas operações, a melhoria do desempenho e a correção de bugs ou a correção de erros quando o código-fonte não está disponível.

Um exemplo é a Phoenix, uma empresa de software dos EUA que criou software de sistema básico de entrada/saída (BIOS), que era compatível com a versão proprietária da IBM. Para fazer isso, a Phoenix fez engenharia reversa da versão IBM de uma forma que a protegesse de cobranças de direitos autorais, registrando as etapas seguidas e não fazendo referência ao código proprietário.

O malware é outra área onde a engenharia reversa de software é usada. Os agentes de ameaças costumam usar ofuscação de código de software para impedir que seu código malicioso seja descoberto ou compreendido. Os proprietários de software ou sistemas infectados podem usar engenharia reversa para identificar conteúdo malicioso, como vírus.

A Agência de Inteligência de Defesa dos EUA disse que pretende usar essas técnicas para fazer engenharia reversa de malware inimigo para criar suas próprias armas cibernéticas ofensivas. Estão disponíveis ferramentas para auxiliar na engenharia reversa de malware, como o software Ghidra da Agência de Segurança Nacional, que é usado para fazer engenharia reversa do malware WannaCry, por exemplo.

Peças de computador

Se um fabricante de processadores quiser ver como funciona o processador de um concorrente, ele pode comprar o processador de um concorrente, fazer engenharia reversa e então usar o que aprender para fabricar seu próprio processador. Este processo é ilegal em muitos países, requer muita experiência e é caro. A engenharia reversa é frequentemente usada para criar peças de reposição quando as peças originais de equipamentos legados não estão mais disponíveis. A engenharia reversa de peças de computador também é feita para aumentar a segurança. Por exemplo, o Project Zero do Google identificou vulnerabilidades em microprocessadores usando engenharia reversa.

Avaliações de segurança de rede

As empresas que realizam avaliações de segurança de rede também usam a engenharia reversa como uma de suas ferramentas. Eles dividem seu grupo de segurança em duas equipes. Uma equipe simula ataques e a outra equipe monitora a rede e faz engenharia reversa dos ataques da outra equipe. As informações obtidas com esses ataques simulados são usadas para fortalecer a rede corporativa.

Desafios legais e éticos com engenharia reversa

Nos EUA, a engenharia reversa é geralmente considerada uma forma legal de aprender sobre um produto, desde que a versão original seja obtida legalmente e nenhum outro acordo contratual seja quebrado. As leis comerciais dos EUA visam permitir a engenharia reversa se for do interesse de melhorar o produto ou criar interoperabilidade com outros produtos que anteriormente eram incompatíveis.

A engenharia reversa de um produto patenteado é geralmente legal de acordo com a Lei de Defesa dos Segredos Comerciais, mas há situações em que sua legalidade é questionável. Os proprietários de patentes têm recursos legais contra qualquer pessoa que copie as suas invenções.

Software de engenharia reversa com a finalidade de copiar ou duplicar um programa pode constituir uma violação da lei de direitos autorais. Algumas licenças de software proíbem especificamente a engenharia reversa. Outros acordos contratuais também podem limitar o uso de engenharia reversa para obter acesso ao código, incluindo termos de serviço ou avisos de uso e não divulgação e outros tipos de acordos de desenvolvedor.

Medidas de proteção tecnológica (TPM), como senhas, criptografia e dispositivos de controle de acesso, são frequentemente usadas para controlar o acesso a software e outros conteúdos digitais protegidos por direitos autorais. Contornar o TPM pode levantar questões legais.

As várias leis relativas à engenharia reversa incluem o seguinte:

  • lei de patentes;
  • lei de direitos autorais e uso justo;
  • lei de segredo comercial;
  • disposições antievasão da Lei de Direitos Autorais do Milênio Digital;
  • Lei de Privacidade das Comunicações Eletrônicas; e
  • qualquer lei contratual específica para o produto em questão.

Quando uma contestação de engenharia reversa é levada a tribunal, o proprietário original do objeto, sistema ou propriedade intelectual deve provar que criou o objeto ou possui a patente ou os direitos autorais. A pessoa ou organização que faz a engenharia reversa deve provar que obteve as informações de forma legal.

Uma maneira de fazer engenharia reversa propositalmente e desenvolver um novo produto de software para evitar violação de patentes ou direitos autorais é usar uma sala limpa ou uma técnica de parede ética, na qual dois grupos separados de programadores trabalham no projeto, garantindo que o original não seja copiado diretamente.

Veja mais em: Como trabalhar com Inteligência Artificial.

A engenharia reversa é uma área complicada da ética e da lei. A proliferação da tecnologia da informação em muitos sectores da vida quotidiana está a tornar tudo ainda mais complicado.
A engenharia reversa tem muitos usos legítimos em TI. Pode ser uma abordagem legal e ética para resolver problemas de compatibilidade, recriar peças legadas, fazer avaliações de segurança, melhorar um produto existente ou torná-lo mais barato.

Qual é o propósito da engenharia reversa?


Leia mais em: A História e Aplicações da Inteligência Artificial.

As etapas envolvidas são complicadas e variam dependendo do que está sendo submetido à engenharia reversa. Por exemplo, profissionais de controle de qualidade que buscam resolver problemas de usuários com produtos de software podem fazer engenharia reversa de uma reclamação para chegar à sua causa. Identificar as causas principais dos problemas do usuário não é fácil, mas as técnicas de engenharia reversa eliminam algumas suposições.

Inscreva-se na Newsletter

DOSE DIÁRIA DE INTELIGÊNCIA ARTIFICIAL
E receba atualizações sobre IA todo dia no seu e-mail

Subscription Form

Mais para explorar

Entre para a melhor formação de IA na prática do Brasil