A Engenharia Reversa na Tecnologia da Informação, é dividida em Extração dos Dados e em Tratamento dos Dados.
A Extração de Dados é feita por meio de:
- análise estática/de código, definindo rotinas, tamanho de memória e variáveis, classes, APIs usadas, bibliotecas, arquivos criados/utilizados durante a execução, chamadas de rotinas do sistema;
- análise dinâmica, usando debuggers/tracers de execução e sniffers de rede, determinando assim qual parte do código é executada em determinado tempo, quais as conexões feitas e o fluxo de dados como ocorre a passagem de parâmetros entra as bibliotecas, APIs e funções;
- por fim gera-se uma breve documentação, contendo anotações e registros, assim como o código fonte descompilado e osassemblys do programa estudado.
O Tratamento dos Dados consiste em:
- estudar possíveis anomalias de código, pedaços nunca executados, reaproveitamento, recursividade;
- encapsulamento, ocorre mais na re-engenharia, escondendo o código antigo usando uma nova camada de código;
- slacing/fatiar, decompõem o código em pedaços, para ficar mais fácil seu estudo, de acordo com a utilização de variáveis;
- reconhecimento de clichês, reconhecendo maneiras padrões de implementar-se conceitos lógicos em uma linguagem.
Comments