Às vezes, um engenheiro precisa pensar na direção oposta da análise do produto. Por exemplo, um engenheiro mecânico pode tirar conclusões sobre a forma como um produto é desenvolvido com base em seu design e propriedades físicas. Eles podem ser capazes de produzir o mesmo produto se ele tiver uma compreensão completa do que é e do que consiste.
Você também pode comparar a engenharia reversa a provas de equações matemáticas. Então, como a engenharia reversa é usada? Verificar O que é Manufatura Assistida por Computador (CAM)?
Links Rápidos
O que é engenharia reversa?
A engenharia reversa é o processo de descobrir os princípios técnicos de uma máquina ou sistema, analisando sua estrutura, função e modo de operação. Esse processo geralmente é feito decompondo um sistema (máquina mecânica, aplicativo de software, componente eletrônico) em várias partes ou tentando remanufaturar um sistema semelhante que executa a mesma função do sistema original. Se você observar as áreas de trabalho da engenharia reversa, verá que pode usá-la para muitos propósitos diferentes. Se você olhar de uma perspectiva de segurança cibernética, as seguintes operações são possíveis com métodos de engenharia reversa:
- Análise do código fonte de software não aberto.
- Análise da vulnerabilidade de segurança e sua causa.
- Análise de malware.
- Rachaduras e remendos.
Você pode ver a engenharia reversa usada até mesmo em jogos de computador hoje em dia. Por exemplo, o desenvolvedor geralmente cria modificações para a interface e a jogabilidade usando métodos de engenharia reversa.
No campo da engenharia reversa, existem duas abordagens diferentes para análise: estática e dinâmica. Você executa a análise estática quando analisa um aplicativo sem realmente executá-lo. Por outro lado, o método de análise dinâmica exige que o aplicativo seja executado para monitorar seu comportamento e os dados que ele usa.
Mas antes de fazer uma análise de engenharia reversa, existem alguns termos importantes que você precisa saber sobre como funciona a engenharia da computação. Verificar Como isolar um computador, medidas de segurança estritas para os fanáticos por privacidade.
Principais partes da engenharia da computação
A engenharia reversa é praticamente impossível, a menos que você entenda de engenharia da computação. Você precisa estudar as quatro partes principais:
- A entradaO conjunto de métodos disponíveis para entrada de dados.
- Unidade de processamento central (CPU): O processador interpreta as instruções, processa os dados recebidos e os repassa para outros componentes.
- Memória: A área que contém dados temporariamente durante o processamento.
- ResultadoO resultado final que o usuário vê.
Você pode ver todos esses detalhes importantes por meio de um exemplo fácil de entender, quando você pressiona a letra A no teclado. Quando pressionado, ocorre um evento de entrada. Após esta etapa, a CPU processa os dados e utiliza um pequeno espaço na memória para armazená-los. Por fim, você verá a letra A na tela e finalizará o processo com a saída.
Vá fundo na CPU
Se você realmente quer se tornar um especialista em engenharia reversa e se aprofundar neste assunto, você precisa de um conhecimento detalhado de componentes, dispositivos e linguagens de programação de baixo nível, especialmente a CPU. Os principais tópicos que você precisa saber sobre a CPU são:
- Unidade de controle: É responsável por processar os dados na CPU e transferi-los para os campos relevantes. Você pode pensar nesta unidade como um mecanismo de controle de direção.
- ALU: Esta abreviação significa Unidade Lógica Aritmética. É aqui que algumas das operações aritméticas e lógicas ocorrem. Se você se aprofundar na matemática, verá que as quatro operações básicas são essencialmente variáveis quando somadas. Então ALU é baseado em clustering. Por exemplo, subtrair dois de três é o mesmo que somar dois menos três.
- Registros: Estas são as áreas dentro da CPU que armazenam os dados processados. Existem diferentes tipos de registradores, assim como existem diferentes tipos de variáveis em uma linguagem de programação. O registro é responsável por manter o tipo e as características dos dados a ele atribuídos.
- Sinais: Se você deseja que a CPU execute muitas operações diferentes ao mesmo tempo, é necessário uma certa maneira de organizá-las. Os elementos que fazem isso são chamados de sinais. Cada transação opera em sinais que garantem que ela não interfira em outro processo.
- TransportadorO caminho usado pelos dados para viajar de uma unidade para outra. Observe como o nome sugere transporte.
Conceitos que você costuma ouvir na engenharia reversa
Entender como a CPU processa os dados e os armazena na memória, juntamente com o conceito de registradores, pode ser muito útil na engenharia reversa. Em particular, você pode usar o diagrama abaixo para entender melhor o conceito de memória:
Finalmente, para análise de engenharia reversa, você precisa conhecer alguns conceitos básicos sobre registradores. É um dos tópicos em que você mais se concentrará. Aqui estão algumas explicações sobre dados, índices e registros de índice que serão úteis para você da maneira mais concisa:
1. EAX: Abreviação de Registro Acumulado. Geralmente salva dados que se enquadram na categoria de operações aritméticas aqui.
2. EBX: Abreviatura de Cadastro Básico. Desempenha um papel no processamento indireto.
3. EDX: Registro de Dados. edx ajuda outros registros.
4. EIP: um acrônimo para Indicador de Instrução. Carrega o endereço de domínio para inicializar.
5. ESP: carrega o endereço base.
6. ESI: Contém informações de índice de origem.
7. EDI: Contém informações de índice de destino.
Você deve pesquisar todos esses detalhes separadamente para entender as nuances. Mas se você observar o básico e tentar entender a lógica de negócios, não importa em qual arquitetura de processador você esteja, analisar o código para engenharia reversa é muito fácil.
A engenharia reversa geralmente começa com o código de máquina. Você pode entender muitos dos termos acima se estiver familiarizado com montagem ou tiver conhecimento de arquiteturas de processadores de 32 ou 64 bits. Se você quiser aprender a montagem desde o início, será muito útil para a engenharia reversa. Verificar O que é o afogamento do PC e como posso corrigi-lo?
O que você fará com todas essas informações?
Se você tiver um bom conhecimento de engenharia reversa, poderá realizar a análise de código independentemente do sistema operacional ou da arquitetura do processador com o qual está trabalhando. Por exemplo, é possível acessar versões piratas de muitos aplicativos ou jogos de computador. Este é um método completamente ilegal.
No entanto, se você deseja se tornar um profissional ético de segurança cibernética, precisará usar a engenharia reversa para entender por que esse software foi comprometido. Se você deseja avançar na engenharia reversa ou está apenas começando, será uma boa escolha tentar aprender sobre a relação entre hardware e código. Você pode ver agora Como escolher a certificação de TI certa e não se arrepender.