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 •