3- Tipos de engenharia reversa
Mostraremos aqui dois tipos de engenharia reversa de software: sem o código-fonte e com o código-fonte.
3.1 - Engenharia reversa sem o código-fonte
O código-fonte do software não está disponível, e todos os esforços para descobrir uma possível fonte do código para o software são considerados como engenharia reversa.
Podemos assim tentar realizar a engenharia reversa de software por vários métodos. Dentre os principais métodos, podemos citar:
- Análise de fluxo de dados
Analisa através da observação da troca de informações que envolve o sistema. Algumas ferramentas conseguem capturar o tráfego de dados do software por onde os dados percorrem. Esse caminho percorrido pelos dados poderá ser implementado no novo projeto, que será desenvolvido, tendo o mesmo comportamento.
- Desmontador
Convertendo a linguagem de máquina em linguagem de montagem, conseguimos assim obter a linguagem de máquina diretamente do programa. O código em linguagem de montagem geralmente contém constantes simbólicas, comentários e rótulos de endereçamento, o desmontador consegue reverter apenas parcialmente o processo de montagem, assim o código produzido por um desmontador é mais difícil de entender necessitando de um decompilação.
- Decompilador
Neste método utiliza-se um decompilador, um programa que tenta recriar o código-fonte em uma linguagem de alto nível, tendo disponível apenas o código de máquina.
Copyright © 2014 AIEC.