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

Post on 17-Apr-2015

110 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Engenharia Reversa

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.

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.

Exemplos

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

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).

Recuperação de dados

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

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.

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.

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.

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

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

top related