engenharia reversa. engenharia reversa a engenharia reversa consiste em, a partir de uma solução...

34
Engenharia Reversa

Upload: internet

Post on 17-Apr-2015

110 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Engenharia Reversa

Page 2: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Engenharia reversa

• A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados.

• É o processo de análise de um artefato (um aparelho, um componente elétrico, um programa de computador, etc.) e dos detalhes de seu funcionamento, geralmente com a intenção de construir um novo aparelho ou programa que faça a mesma coisa.

Page 3: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Engenharia reversa de software

• O processo de Engenharia Reversa (ER) pode auxiliar na recuperação de dados.

• Por exemplo: Softwares antigos nos quais os desenvolvedores originais não mais trabalham podem ter seus códigos-fonte recuperados com a finalidade de realizar ajustes em partes do programa.

Page 4: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Exemplos

• Alguns exemplos de tal pratica são jogos antigos (Atari, Mega Drive, Super Nintendo etc.).

Page 5: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Segurança

• A ER é freqüentemente associada a questões de segurança também.

• Por meio de suas técnicas pode-se explorar o código dos programas a fim de averiguar se há códigos maléficos, ou averiguar se o código original não sofreu alteração ou injeção de rotinas ocultas (vírus).

Page 6: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Recuperação de dados

• Um sistema de arquivos criptografado pode ser entendido e ter seus recursos utilizados para recuperação de dados perdidos.

Page 7: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Questões legais

• Em alguns países a prática de ER é considerada ilegal e alguns praticantes interessam-se em obter acesso não autorizado a recursos de software não oferecidos gratuitamente pelos fabricantes que vendem o produto.

• Tal prática é denominada Cracking.

• Por outro lado, a ER tem sido utilizada como ferramenta de proteção contra a própria ER praticada de forma ilegal.

• A partir de técnicas aplicadas nesta área é possível modelar melhores proteções para o software como anti-descompiladores, códigos mutantes e armadilhas.

Page 8: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

ER e Linux• A Engenharia reversa, foi amplamente utilizada durante a criação dos

drivers Linux, devido ao fato dos fabricantes de hardware, a principio, não reconhecerem o Linux como um sistema operacional onde valesse a pena investir tempo e dinheiro no desenvolvimento de drivers.

• Os conhecimentos recolhidos com o grande trabalho de todo tipo de colaborador pelo mundo, geraram um grande "banco de dados" sobre os mais diversos tipos de hardware, possibilitando que os desenvolvedores de novos SO's não precisassem refazer este grande trabalho.

• Outro caso clássico no mundo linux é o software samba, que permite a uma máquina rodando um unix-like se comportar como um verdadeiro servidor windows.

• O samba foi completamente desenvolvido por engenharia reversa, simplesmente com o gigantesco trabalho de analisar o tráfego de dados entre um micro rodando windows e um servidor rodando windows server.

Page 9: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 10: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 11: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 12: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 13: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 14: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 15: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 16: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 17: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 18: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 19: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 20: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 21: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 22: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 23: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 24: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 25: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 26: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 27: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 28: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 29: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 30: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 31: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados
Page 32: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Exemplo

• Engenharia reversa para criação de um “clone”.

• Estuda-se o manual técnico ou a própria ferramenta, levantando-se um conjunto de funcionalidades a serem implementadas.

• Realiza-se o projeto e implementação a partir dessas funcionalidades.

Page 33: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Exemplo

• Engenharia reversa para a manutenção de um sistema.

• Busca-se:• Analisar o código fonte• Documentação que existir• O programador, se disponível• Ferramentas de descompilação• Ferramentas de engenharia reversa

Page 34: Engenharia Reversa. Engenharia reversa A Engenharia reversa consiste em, a partir de uma solução pronta, retirar todos os possíveis conceitos ali empregados

Ferramentas para Engenharia Reversa

• Win32/Wine • IDA Pro

• Win32 only • OllyDbg

• Linux/Unix • Objdump • HT Editor • Boomerang • Rewind • Strings • Valgrind

Java • Java De-obfuscation • Jad - Java Disassembler

Cross Platform • Sang Cho's Win32 Disassembler • Rasta Ring 0 Debugger (RR0D)

Fonte: http://wiki.multimedia.cx/index.php?title=Reverse_Engineering_Tools