sábado, 8 de dezembro de 2007

Engenharia Reversa com o Wireshark...

Estava começando a escrever um post, onde eu vou falar sobre o Google Maps API, e queria fazer uma pequena aplicação aqui que servisse como exemplo. Pensei, inicialmente, em fazer uma mapa meteorológico, tipo o mapa que aparece no sitio da Rede de Meteorologia da Aeronáutica, só que utilizando o Google Maps. Utilizar a API não seria o problema, como eu iria demonstrar, o mais difícil seria conseguir os dados meteorológicos atualizados, num formato que pudesse ser utilizado.

Aí pensei no Relatório Meteorológico, que é um aplicativo que fica no painel e mostra as condições climáticas. Como ele atualiza os dados do clima, obviamente, ele deveria tirar de algum lugar na internet, e, com um pouco de sorte, poderia estar num formato que eu pudesse utilizar na aplicação que eu queria fazer.

(Ao fundo, a Michelli Torrico, a mais bela paisagem do Colírio. Sou fã dela. Podem ver no meu Orkut. E todos podem ajudar ela: Click Me e Quero a Mi Torrico na Playboy!!!!)

Como uma das grandes vantagens do software livre, é "... a liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades", baixei o fonte do programa para dar uma olhada.
$ apt-get source gnome-applets
Como o código fonte não era só do aplicativo, e sim de vários aplicativos que podem ser instalados no painel, e que possivelmente iria levar algum tempo até achar o que eu queria, pensei numa idéia mais simples para resolver meu problema: fazer uma engenharia reversa com o Wireshark.

Wireshark é um programa que permite monitorar o tráfego de rede, capturando tudo que entra ou sai de um dispositivo. Abri ele, fechei todos os aplicativos que poderiam utilizar a rede, iniciei a captura de dados e atualizei o relatório meteorológico, que entregou o jogo.

O programa funciona de forma bem simples. Ele simplesmente faz uma pesquisa no sitio da NOAA e pesquisa pelo ultimo METAR da cidade. No meu caso, seria o equivalente a digitar no navegador:
http://weather.noaa.gov/cgi-bin/mgetmetar.pl?cccc=SBPA
O programa analisa os dados coletados e os exibe. Apesar de ter desvendado este "grande" segredo, não será útil no meu aplicativo, pois seria impraticável fazer aqui neste espaço, já que necessita de um processamento mais elaborado, principalmente se considerar que eu teria que fazer isso para inúmeras cidade.

Vou ter que achar outra solução, ou fazer algo mais simples.

F.M.