Jornal Hoje em Dia - coluna Tendências.com

Transcrição

Jornal Hoje em Dia - coluna Tendências.com
-
/"'\
-
-
-
r
,-
,......
/'
r-
-
,......,....,........,,.-..
0
r-- r-
r--.r-
r--
r- r
..--.,.-..
�
f 'c_;:·
A
[email protected]
� Tendênciasmeom
lnfo.com- Hoje em Dia- BH, domingo,
28/4/2002
DESMONTANDO O SOFTWARE
LUIZ
MAIA
Quem enquanto pequeno
nunca desmontou um
brinquedo para entender
seu funcionamento? Que
tal um carrinlw de con­
tJ-ole remoto ou um robô
falante? Nada que uma
chave Philips roubada da
caixa de ferramentas do
pai, não seja capaz de des­
momar em poucos mimt­
ros ... 1tlén1 de sali4azer
sua
wriosidade,
tão
con1um nesra etapn de descobrin1ento,
a crinnça estnrá dando passos para
aprimorar seu aprendizado. E a costu­
reira que tem uma barmquinlw nnfei­
ra, desmontando un1n mochila ou rou­
pa de grife pam tirar o molde e então
produzi-la a um custo muito menor a
seus clientes? Ou. um exemplo atual,
como desvendar o genomn humano,
onde todas as instmções do código
genético são repassadas de forma a
detectar e corrigir uma doença genéti­
ca antes dela se desenuolver?
Tudo isto faz parte de wn proces­
so conhecido como engenharia rever­
sa. De acordo com o Aurélio, Enge­
nlwria significa "a arte de aplicar
conhecimentos científicos e empíricos
e certas lzabitações especificas a cria­
ção de estruturas, dispositiua e pro­
cessos que se utilizam para converter
rewrsos natura.is em formas adequa­
das ao atendimento das necessidades
humanas". ]á a engenharia reversa
tem como objetivo a extração ou alte­
ração de um produto já acabado, sem
que haja referências de como se che­
gou até o atual estágio.
No âmbito da informática, wn
exem.plo seria através do arquivo exe­
wtável extrair seu código fonte. Com
isto seria possível alterar ou adicionar
funções a um programa já pronto. Na
. época das produções em Clipper Swn­
-,
mel; linguagem de progmmação mu.ito
utilizada na década de 80, existia soft­
wares como o UNCUP que revertiam
um arquivo já compilado em seu códi­
go fonte. O mais incrível é que o código
fonte obtido incluía até os comentários
e talmlações. Estes progmmas que
geram módulos originais chamam-se
descompiladores.
Atualmente a maior parte dos
aplicatiuos desenvolvidos utiliza lin­
guagens visuais como Delphi e Visual
Basic. Os arquivos gerados atJrwés des­
tas linguagens são mais complexos de
serem reversamente trabalhados. Pois
podem requerer o conhecimento de
linguagem de maquina Assembly para
realizar uma alteração mais compleI.
.
fii\A R I o
V' A l ê
'
-
�
c=::�>
DsU&;J\JlliBl
xa. Porém é particularmente simples a
troca de imagens e frases, bastando
atualizar a seção do arquivo conheci­
da como "resource'; utilizando progra­
mas como o WorkShop da Borland.
.Eüstem muitos exemplos utiliza­
ção da engenharia reversa para a tra­
dução de softwares. Um destes exem­
plos é o Real Orche, software de karao­
kê que possui versão em português
para liSO comercial. Eu mesmo já ta
r ­
duzi um software muito utilizado na
era DOS conhecido como DirectOI)'
Fredom ou DF Utilizando um editor
hexadecimal foi possível realizar o tra­
balho sem maiores dificuldades. Na
ocas(ão uma das ferramentas mais llti­
lizadas era o PCTOOLS. Atualmente
existe editores hex:adecimais como o
HJEW que além de permitir editar o
código hexadecimal, permite a conver­
são em tempo de edição para lingua­
gem assembly incluindo referencias
auxiliares de string e j11mps (saltos)
dentro do arquivo.
Existem diversas ferramentas
para realizar este tipo de trabalho.
As mais conl1ecidas atualmente são:
W32Dasm, IDA 32, REC, Softlce,
Hexpert. Muitas estão disponíueis
para rlownload na ·internet, basta
realizar uma busca nos sites de pes-
qztisa por seus nomes.
O REC (Reuerse Engeneering Com­
pilei), descompilaclor multiplatafor­
ma transformam. o código executáuel
em linguagem C. O software esta clis­
ponível para download no endereço:
www. backerstree t·. com!reclrecdloa
onde existem versões diferentes para
cada sistem.a operacional. Utilize o
comando "rec arquivo.exe !dll" para
criar o arquivo em ling11agem C.
Uma extensão da engenharia
reversa de software é aplicá-la ao hard­
ware. No hardware a descompilação é
·
um pouco mais complicada e pode exi­
gir mais recttrsos. Funciona capturan­
do o software armazenado nn eprom.
do dispositivo e então edita-lo onde
pode ser utilizando os mesmo progra­
mas, para então gerar uma eprom com
o software alterado. Além do equipa­
mento utilizado, o microcontrolador
utilizado pelo dispositiuo pode ter um
conjunto de instruções e regimos dife­
rentes exigindo uma habilidade mai01:
Apesar das dificuldades, a engenharia
reversa de lwnlware é muito utilizada
para destravar aparelhos eletroeletrô­
llicos como rJÍdeo game e DVD. Onde os
revendedores "destravam" o aparelho
permitindo rodar jogos piratas e DVDs
de outra região.
A engenharia reversa tem. u.m
papel importante na descoberta de
erros e falhas de segurança que atin­
gem softwares sem ser os de código
aberto. Grande parte das falhas de soft­
wares da Microsoft e de outras gigantes
é descoberta através do processo de
engenharia reversa.
Se pretender. se aventurar nesta
área, segue algumas dicas finais sobre
os requisitos necessários:
1 - Conl1ecer a plataforma que se
está utilizando: saber como o sistema
operacional utiliza a memória e regis­
tros do processado1: No caso do Win­
dows conhecer as APis ajuda muito.
2 - Conl1ecer sobre tl"Clnsformaçào
de base: lle-wdecímal, decimal e binário.
3- Conl1ecimento básico sobre lin­
guagem de maquina.
4 - Estar sempre atento às nouas
ferramentas e programas utilizados.
Por ultimo boa sorte e até a
próxima!
Luiz I\!/aia é consultor em seguran­
ça e diretor da alarmsoft. E-mail para
[email protected]
.,. Luiz Maia é consultor e diretor do
Alormsoft, especializado em seguran­
ça. E-moil: luizmoio@hojeem­
dio.com.br
•

Documentos relacionados