Engenharia reversa

Publicados: 2022-03-10

Última atualização em 21 de março de 2022

Reverse Engineering | a Girl Reversing Her Car

Vou falar sobre o que é engenharia reversa e por que ela é importante. Muitas pessoas que não são desenvolvedores pensam que sabem o que é engenharia reversa porque já viram isso nos filmes, mas isso é um equívoco. A engenharia reversa tem muitos significados para muitas pessoas diferentes, e o que vou dizer a você será muito diferente da definição de outra pessoa.

Para a White Label Software, a engenharia reversa é essencialmente pegar um programa e descobrir como ele funciona e o que pode fazer. Para ser mais preciso, porém, a engenharia reversa é pegar um programa existente e aprender seu funcionamento interno para que você possa modificar o programa para fazer coisas diferentes das pretendidas pelo autor. Você pode aprender mais sobre o que significa white label quando navega em nosso site!

No desenvolvimento de software, dizemos que você está fazendo engenharia reversa de algo quando você desmonta e descobre como funciona. A engenharia reversa é benéfica para aprender como usar o software e como ele funciona. Também pode ser usado em muitas coisas diferentes, como marketing digital, defesa de sua empresa, hackers e muitas outras coisas.

Procurando Agência de Marketing White Label? Ligue-nos agora!

Engenharia reversa em marketing

Reverse Engineering In Marketing | A Man and Woman Discussing Their Different Marketing Graphs Se você pretende criar uma nova campanha de marketing, você pode fazer engenharia reversa do software para descobrir o que ele faz ou como deve funcionar. Em seguida, você pode modificar o código para adaptá-lo às suas necessidades. Você pode fazer o mesmo com anúncios ou outros tipos de marketing. Também é possível obter informações sobre concorrentes, especificações e desempenho de um produto e muitas outras coisas.

Quando você quer criar algo, primeiro você precisa começar com um design. Você pode usar ferramentas para ajudá-lo a fazer o design, mas também deve testá-lo com suas coisas porque é importante saber se as coisas vão interagir adequadamente. Às vezes, você precisa brincar com os programas e descobrir como eles funcionam criando saídas falsas. Você pode até dirigir um carro com a imagem de um carro real, especialmente se quiser ver como ele se comporta. Chamamos isso de condução virtual ou condução virtual.

O que é engenharia reversa?

É o processo de análise de um programa de computador para determinar sua estrutura interna, código-fonte, algoritmos e fluxo de dados. O objetivo da engenharia reversa é entender como um programa de computador funciona e o que está dentro do programa. Onde você lê essas informações, elas podem ser chamadas de análise de falhas, desmontagem, engenharia reversa ou depuração. Eu gosto de “depurar” porque soa mais como uma atividade feita por um programador quando não é. Hoje em dia, a maioria dos programadores nem sabe que são engenheiros reversos.

A engenharia reversa é o processo de pegar um pedaço de software, um programa (ou cracker), para executar uma ação que o desenvolvedor nunca pretendia que fosse usado (mas às vezes acontece). Nesse cenário, o hacker encontrou uma falha de código em um programa e descobriu como usá-la para obter o efeito desejado. Por exemplo, os hackers têm jogos de engenharia reversa e sabem como eles funcionam ou que tipo de informação podem aprender.

Por que isso é importante?

Quase todos os softwares no mercado têm engenharia reversa. Existem alguns programas que não são revertidos. Até os aplicativos da Microsoft passaram por engenharia reversa. Mesmo empresas inteiras não fazem nada além de engenharia reversa de software por dinheiro.

A engenharia reversa tornou-se cada vez mais importante desde que o governo dos EUA aprovou leis para proteção de software ou gerenciamento de direitos digitais (DRM). Não haveria software com DRM se não tivesse engenharia reversa, e os programas de engenharia reversa não seriam protegidos por DRM. Há mais razões pelas quais a engenharia reversa é importante, mas isso é assunto para um livro inteiro (ou uma série de livros).

A engenharia reversa mudou o mundo. Mudou completamente a forma como as pessoas vivem. Há muitas vantagens para ele:

  • Você pode fazer o software fazer o que você quer que ele faça.
  • Você pode descobrir como remover coisas de um programa que não deveriam estar lá.
  • Torna-se mais fácil quebrar algo em seus componentes e analisá-lo ainda mais.
Você está fazendo engenharia reversa de algo quando desmonta e descobre como funciona. A engenharia reversa é benéfica para aprender como usar o software e como ele funciona. Clique para Tweetar

Quais são os benefícios da engenharia reversa?

Benefits | A Girl On The Top Of A Block Você pode ver o que ele faz e aprender sobre seus mecanismos internos invertendo o programa. Você pode fazer alterações no programa sem afetar outros programas ou o sistema operacional. Essa é uma vantagem significativa, pois a maioria dos programas deve ser compatível com bibliotecas e sistemas operacionais fornecidos por seus editores. Fazer alterações em um programa não só pode danificar seriamente o seu sistema, mas também o de outros usuários. A engenharia reversa dá acesso a todos os mecanismos internos, bibliotecas e informações sobre como funciona. Você pode criar programas que podem usar bibliotecas e sistemas operacionais sem pagar por eles.

O que é o processo de engenharia reversa?

Esta é uma pergunta complicada porque a resposta depende do seu programa de engenharia reversa. A melhor resposta que posso dar é: “Depende…”. Os programas modernos têm código antidepuração, engenharia anti-reversa e anti-sobregravação. Isso significa que a engenharia reversa envolve o uso pesado de ofuscação, o que desperdiça tempo e às vezes pode levar a falhas no programa.

A ofuscação é uma técnica de engenharia anti-reversa que dificulta a engenharia reversa do programa. Sub-rotinas, funções e outras partes de um programa geralmente são movidas para diferentes lugares na memória e as estruturas de dados são alteradas com números mágicos. Às vezes, o código é criptografado ou escaneado em busca de palavras específicas que possam fornecer informações sobre sua estrutura. Isso nem sempre é suficiente para derrotar os engenheiros reversos; portanto, às vezes, um programa falha ao tentar desmontá-lo com ferramentas específicas. Em muitos países, é ilegal mesmo que você possua uma cópia do software e não o tenha modificado de forma alguma.

Como fazer engenharia reversa de software/programas?

Se você não está acostumado a software de engenharia reversa, é aconselhável começar primeiro com programas acessíveis. Seria melhor se você tentasse aprender ferramentas específicas de engenharia reversa antes de pular para o fundo do poço. Uma boa ferramenta para iniciantes é o IDA Pro. (IDA significa Análise de Detecção de Intrusão). É gratuito, de fácil acesso e pode reverter praticamente qualquer programa, desde que seja de 32 bits. O IDA Pro funciona analisando código compilado ou desmontado e o exibe de uma maneira que facilita a leitura, compreensão e até edição. O IDA Pro é uma boa ferramenta para engenharia reversa, mas não é adequado para todas as situações.

Outra ferramenta é o GDB, que é uma ferramenta de depuração, como o Visual Studio. No entanto, o GDB depurará o código durante a execução da mesma forma que o Visual Studio. A diferença é que você pode fazer alterações no código durante a execução e causar uma falha no programa. Isso permitirá que você veja o erro na lógica (assumindo que um mecanismo de engenharia anti-depuração/anti-reversa não o mascará). Depois disso, você pode corrigir o erro ou continuar a execução até que alguma outra parte do programa cause um problema.

Saiba mais sobre o marketing de marca branca! Entre em contato conosco agora!

Quais são os riscos da engenharia reversa?

Risks | A Man Jumping From One Cliff to Another É ilegal na maioria dos países fazer engenharia reversa de software. No entanto, não é ilegal em algumas situações nos EUA, desde que você possua uma cópia do programa e possa provar que foi adquirido legalmente (usando um número de série ou CD-Key). Também há exceções para mecanismos anticópia e antipirataria, que permitem apenas fins educacionais. Para fazer engenharia reversa de um programa, você precisa ter informações suficientes para fazê-lo. Isso geralmente significa entender o código-fonte do programa que você está fazendo engenharia reversa. Nem sempre é fácil, mesmo se você puder ler o código-fonte, principalmente se um mecanismo anti-depuração/anti-engenharia reversa foi usado.

Espero que você tenha uma ideia melhor do que significa engenharia reversa e como aplicá-la a diferentes casos de coisas. Espero também que você se torne mais experiente nessa área e ajude seu negócio e seus clientes a crescerem usando suas ferramentas de conhecimento de uma forma mais moderna.