Conheça nosso Grupo De Estudos!



Engenharia Reversa

Engenharia reversa (Reverse Engineering)




O que é Engenharia reversa?


Engenharia reversa é o método de descobrir o funcionamento de um sistema através da análise de sua estrutura, função e operação. Objetivamente a engenharia reversa consiste em, por exemplo, pegar a source de um sistema. 


Técnicas de engenharia reversa:
  
 • Análise de fluxo de dados: Análise através da observação da troca de informações que envolvem “analisadores de bus” e “pacotes de sniffers” por exemplo, para "ouvir" dentro do bus de um computador ou uma conexão de rede, revelando o tráfico de dados "escondidos". O comportamento dos dados no bus ou na rede podem então ser analisados para produzir uma nova implementação do software que imita o mesmo comportamento. Isto é especialmente utilizado na engenharia reversa de drivers de dispositivos.
 • Désassembler: Usando um désassembler, conseguimos obter a linguagem de máquina diretamente do programa. Este código é lido e entendido nos seus próprios termos, apenas com a ajuda de “mneminics” da linguagem de máquina. Isto funciona em qualquer programa de computador, mas pode levar um bom tempo, especialmente para alguém que não esteja acostumado ao código de máquina.
  
 • Descompilação: 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



Ferramentas (Colocaremos algumas ferramentas de acordo com sua respectiva linguagem) : 


jd-gui-http://jd.benow.ca/ (Java)
OLLY Debugger -http://www.ollydbg.de/
Radare2 -http://www.radare.org/r/  (Disassemble)
CodeReflect- http://www.devextras.com/decompiler/ (C#/Vb.net)
Snowman-https://derevenets.com/   (C/C++)

Exemplo prático: 

Usando a primeira ferramenta indicada (Apk Tool), vamos aplicar em um aplicativo qualquer. 

Abra seu terminal e digite apktool



Veremos toda sua funcionalidade e comandos.

Abra seu terminal digite:

apktool d seuapp.apk
Logo começará...

 Pronto, aplicado com sucesso o sistema criará uma pasta com os códigos.