Engenharia Reversa – parte 2

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

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *