Buscar

6 - Engenharia Reversa.pdf

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ENGENHARIA REVERSA 
Introdução 
• A partir do momento que um sistema ou 
software começa a ser utilizado ele entra em 
um processo de contínua mudança. 
 
• Mesmo se tiver sido utilizado as melhores 
técnicas e metodologia de processos para o 
seu desenvolvimento, eles vão se tornar 
obsoletos em relação a novas tecnologias que 
estão sempre surgindo. 
Prof. Adelcio Marcos de Lima 2 
Introdução 
• As mudanças mais comuns, além da correção 
de erros que os sistemas sofrem são: 
 
• Migração para novas plataformas 
• Extensão de funcionalidade 
• Mudança de tecnologia de hardware ou S.O. 
Prof. Adelcio Marcos de Lima 3 
Introdução 
• Em geral essas mudanças são realizadas sem 
que haja a preocupação com a arquitetura 
geral do sistema, produzindo estruturas mal 
projetadas, documentação desatualizada, 
lógica e codificação ruins, sendo esses os 
focos que dificultam a manutenção em um 
sistema. 
(OSBORNE e CHIKOFSKY, 1990) 
Prof. Adelcio Marcos de Lima 4 
Introdução 
• Quando o sistema fica inviável, porém é de 
grande utilidade ele deve ser reconstruído. 
Partindo-se do sistema existente (via 
interface, código-fonte ou ambiente), são 
abstraídas as suas funcionalidades, e são 
construídos os modelos da análise o projeto e 
o novo software. A este processo dá-se o 
nome de Reengenharia de Software. 
Prof. Adelcio Marcos de Lima 5 
Exemplo 
Prof. Adelcio Marcos de Lima 6 
Reengenharia e Engenharia Reversa 
• A engenharia reversa é a atividade de tomar algo 
pronto e tentar recuperar o seu projeto. Ou seja, 
tentar esquematizar a sua arquitetura, criando 
um nível de abstração maior do que o código-
fonte, no caso de um software. 
 
• A reengenharia, é uma extensão da engenharia 
reversa. Também extrai as informações do 
produto pronto, porém tem o objetivo de gerar 
um novo produto, mais correto e mais eficiente. 
Prof. Adelcio Marcos de Lima 7 
Produto 
Prof. Adelcio Marcos de Lima 8 
Engenharia Reversa Reengenharia (Novo Produto) 
Motivações 
 Econômicas, Militares, Necessidade Pessoal 
 
 Curiosidade Humana: Compreensão e 
Domínio. 
 
 Compreensão 
 Observação e Entendimento 
 Domínio 
 Possibilidade de modificá-lo 
Prof. Adelcio Marcos de Lima 9 
Motivações 
 Apesar de parecer, a engenharia reversa não 
pode ser considerada uma espécie de cópia, 
pois se trata apenas do estudo daquilo que foi 
criado. 
 
 A cópia é somente uma das consequências 
possíveis do estudo de um produto ou ideia. 
Prof. Adelcio Marcos de Lima 10 
Engenharia Reversa 
 Diferentemente do que pode-se pensar, esta 
prática não surgiu com a computação, apenas foi 
absorvida de outros tipos de indústrias onde ela 
já existia há decadas. 
 
 Na industria automobilistica, por exemplo, os 
fabricantes algumas vezes compram um veículo 
de outro fabricante para desmontá-lo, examinar 
suas peças e componentes para aperfeiçoar seus 
próprios veículos com componentes ou 
tecnologias similares. 
 
Prof. Adelcio Marcos de Lima 11 
Reengenharia de Software Legado 
 Um software legado pode ser definido 
informalmente como aquele que executa tarefas 
úteis para a organização, porém foi desenvolvido 
com tecnologias ou técnicas atualmente 
obsoletas. 
 
 A quantidade de código em sistemas legados é 
imensa. Em 1990, (Ulrich, 1993), estimava que 
existia 120 bilhões de linhas de código desse 
tipo, a maioria em COBOL ou FORTRAN. 
Prof. Adelcio Marcos de Lima 12 
Mudança de Paradigma 
 Muitos sistemas construídos com o 
paradigma estruturado, que já teve seus 
tempos de domínio e ser a melhor maneira de 
se produzir um software, vem perdendo 
espaço para o paradigma orientado a objetos. 
 
 Esta mudança de paradigma também é uma 
das grandes responsáveis pela engenharia 
reversa de software. 
Prof. Adelcio Marcos de Lima 13 
Como realizar a Reengenharia? 
 Este processo é constituído de duas fases 
distintas. Na primeira fase ele é 
“desmontado”, visando o seu entendimento. 
Na segunda ele é reconstruído na forma 
desejada, a partir do produto da primeira 
fase, sendo incluído os ajustes necessários. 
 Segundo, JACOBSON e LINDSTROM, 1991, 
Reegenharia é: 
 Engenharia Reversa + Engenharia Progressiva 
 
Prof. Adelcio Marcos de Lima 14 
Porque utilizar a reengenharia 
 Organizações trabalham com sistemas apresentando 
problemas tais como: 
 
 - O sistema foi iniciado há muitos anos (até 20 anos atrás). 
 
 - O sistema tem pouca documentação e ela não foi 
atualizada. O que quer dizer que a documentação 
descreve um estado anterior do sistema, mas não a 
configuração atual. 
 
 - As pessoas que criaram o sistema deixaram a empresa, 
ninguém pode explicar muitas decisões que foram 
tomadas. 
Prof. Adelcio Marcos de Lima 15 
Porque utilizar a reengenharia 
 - Algumas partes do sistema foram 
implementadas com métodos “estranhos” ou 
sem método nenhum. 
 
 - Muitos programadores diferentes 
implementaram pequenas partes do sistema. 
Cada um usava um método e um estilo 
particular de programação. 
 
 - O sistema é implementado numa linguagem 
de programação antiga (Cobol, Fortran, APL, 
etc.) para a qual existem poucas ferramentas. 
Prof. Adelcio Marcos de Lima 16 
Porque utilizar a reengenharia 
 - Para ser adaptado a novos softwares (novas 
bibliotecas, novas linguagem de programação, 
novas ferramentas). 
 
 - Para ser adaptado a novas regras (troca de 
moeda em todos os países da Europa). 
 
 - Para disponibilizar novas funcionalidades que 
outras empresas usam. 
 
 - Entre outras razões... 
Prof. Adelcio Marcos de Lima 17 
Ferramentas para reengenharia 
 Debuggers, ferramentas para testes e análise por instrução, 
permitindo em tempo real, ajustes de controle de fluxo, 
edição de dados internos de memória, e diversos outros 
comando sobre o software em execução; 
 
 Decompiladores, ferramentas que convertem o código de 
máquina do software pronto em código-fonte; 
 
 Dumpings, ferramentas utilizadas para transferir todo 
conteúdo da memória de um software em execução à um 
arquivo; 
 
 Editores hexadecimais, ferramentas para edição de 
arquivos binários. 
 
 
Prof. Adelcio Marcos de Lima 18 
Crackers X Engenharia Reversa 
Prof. Adelcio Marcos de Lima 19 
Crackers X Engenharia Reversa 
 A Eterna promessa de proteção anti-cópias 
 
 Periódicamente surgem novas tecnologias 
 Encriptadores de código 
 Chave pública-privada 
 Assinatura de hardware 
 
Existem falhas em todas... 
 
 Prof. Adelcio Marcos de Lima 20 
Crackers X Engenharia Reversa 
 Porque toda proteção é quebrável? 
 Toda proteção é baseada em rotinas de software 
 O software é completamente descompilável 
 Logo, toda proteção é quebrável dado o devido tempo e esforço. 
 
 Promessas mais recentes 
 Tecnologias de proteção embutidas em processadores 
 Quebráveis através de emuladores 
 
 “Técnicamente a comunidade cracker insiste que tudo é possível 
de se quebrar, dado o devido tempo e esforço.” 
 
Sendo assim, a batalha continua... 
 
 
Prof. Adelcio Marcos de Lima 21 
Aspectos Legais 
Prof. Adelcio Marcos de Lima - FAP 2010 22 
Aspectos Legais 
 A engenharia reversa pode gerar 
problemas de legalidade, como uma empresa 
querendo criar uma cópia de um produto da 
concorrente. 
 
 No entanto a questão legal depende das 
leis de cada país. E mesmo assim, existem 
países que não possuem leis específicas sobre 
o assunto. 
 
Prof. Adelcio Marcos de Lima 23 
Aspectos Legais 
 Uma das leis mais conhecidas é o“Digital Millenium Copyright Act” dos 
Estados Unidos, aprovado em 1998 que, 
entre várias medidas para proteger direitos 
autorais na informática, também faz 
restrições em relação à engenharia reversa. 
 
 Só é permitida para fins de analisar 
compatibilidade com outros softwares e/ou 
hardware. 
Prof. Adelcio Marcos de Lima 24 
Aspectos Legais 
 No Brasil, não existe uma lei específica sobre 
Engenharia Reversa. Apesar disso, quando 
ocorre engenharia reversa, costuma-se proceder 
de duas maneiras: 
 
 Caso a engenharia reversa não tenha como 
objetivo a pirataria ou infração de algum direito 
autoral, não é considerado crime; 
 
 Porém caso contrário, a Lei de Software e 
também de Direitos Autorais protege seus 
autores. 
Prof. Adelcio Marcos de Lima 25 
Aspectos Legais 
 Lei 9.609/98 
 
• Perante a lei um software é considerado o mesmo que uma 
obra literária. 
• Validade de 50 anos 
• Direito autoral: relativo a exploração econômica da obra 
(software) 
• Direito Moral: Vínculo que liga o autor a sua obra. 
• Cadastro do software é feito no INPI – Instituto Nacional de 
Propriedade Industrial. 
 
www.tce.al.gov.br/sti/download/cd/legislacao/lei_n_9_609_98.htm 
Prof. Adelcio Marcos de Lima 26 
Exemplos de Reengenharia 
 Tupolev Tu-4: Em 1945, durante a segunda 
guerra mundial, três bombardeiros americanos 
modelo B-29 foram forçados a aterrissar em 
território russo. Os soviéticos os desmontaram e 
estudaram. Usaram a engenharia reversa para 
copiar o bombardeiro nos mínimos detalhes. 
 
 O resultado foi o bombardeiro Tupolev Tu-4 que 
voou pela primeira vez em 19 de maio de 1947. A 
produção em série do bombardeiro começou 
neste mesmo ano. 
Prof. Adelcio Marcos de Lima 27 
B29 
Prof. Adelcio Marcos de Lima 28 
TUPOLEV TU-4 
Prof. Adelcio Marcos de Lima 29 
Exemplos de Reengenharia 
 IBM-PC compatível: A IBM abriu mão da patente 
de sua plataforma, deixando o caminho livre 
para qualquer um produzir uma maquina que 
fosse compatível com o IBM-PC. Assim 
surgiram vários clones do IBM-PC. 
 
 
Prof. Adelcio Marcos de Lima 30 
IBM PC “PC” 
Exemplos de Reengenharia 
 Samba: Software que permite sistemas que 
não estão rodando o Microsoft Windows a 
compartilhar arquivos com sistemas que 
estão. A engenharia reversa foi utilizada 
para descobrir como o compartilhamento 
de arquivos do Windows funcionava, para 
que então computadores que não 
estivessem com a plataforma Windows 
pudessem emular a mesma. 
Prof. Adelcio Marcos de Lima 31 
Exemplos de Reengenharia 
 Wine: Programa que funciona como a API 
do Windows. Permite executar aplicativos 
desenvolvidos para Windows 3.1X, 9X, NT e 200x 
no GNU/Linux. 
 
 OpenOffice.org: É um conjunto de aplicativos em 
OpenSource (código aberto). Está disponível 
para diferentes plataformas: incluindo Microsoft 
Windows, Unix, Solaris, Linux e Mac OS X. A 
Suite é compatível com o Microsoft Office. 
Prof. Adelcio Marcos de Lima 32 
 Fazer a leitura do capítulo 29 “Manutenção e 
Reengenharia”, do livro “Engenharia de Software: Uma 
abordagem Profissional” do Pressmann. 
 
 Elaborar 14 perguntas e respostas certas sobre o 
capítulo. 
 
 Entregar dia 10/05/2012 (impresso) 
 
 Dupla 
 
 0 a 1.0 ponto. 
 
 
 
Trabalho de Leitura e Compreensão 
Memorial Descritivo 
34 Prof. Adelcio Marcos de Lima

Continue navegando