Cómo descubrir la URL para descargar canciones de GoEar

Estos últimos días la gente de GoEar ha estado cambiando las rutas de los ficheros xml que contienen las rutas a los mp3, con lo que todos los scripts han dejado de funcionar y hemos tenido que ir cambiándolos día sí y día también. Como parece que no tienen planes de decidirse por una, aquí dejo una explicación de cómo encontrarla.

La técnica consiste en interceptar todo el tráfico entre nuestro ordenador y GoEar para examinarlo y ver de dónde saca el programa la ruta. ¿Cómo podemos hacer eso? Una de las herramientas que más me gusta para esto es “Wireshark”, de código libre y gratuita :)

Una vez instalada, arrancamos la aplicación y seleccionamos “Capture options”:

wireshark1

En esta ventana seleccionamos la interfaz que queremos capturar. Una interfaz de red es, por ejemplo, una tarjeta Ethernet. En mi caso, en este portátil tengo una tarjeta Ethernet (que no uso) y una Wireless (que es por la que me conecto a Internet) así que selecciono la Wireless. En ciertas ocasiones los nombres no son muy descriptivos (en mi caso las dos se llaman “Microsoft”) así que si dudas fíjate en la IP que pone debajo.

Uno de los problemas de capturar todo el tráfico es que nos daremos cuenta de la cantidad de información que generamos. Nuestra pantalla se llenará de miles de paquetes enviados que no nos interesan (conversaciones de chat, programas de actualización, otras webs, etc…). Para acotar esto un poco, le diremos que sólo nos interesa el tráfico HTTP, ya que sabemos que GoEar es una web ;)wireshark2wireshark3

Ahora le damos a “Start” y en nuestro navegador nos vamos a la página de una canción de GoEar, por ejemplo http://www.goear.com/listen/2e0606d/pies-de-barro-avalanch

Nada más que empiece a sonar volvemos a Wireshark y paramos la captura:

 wireshark4

Con esto tendremos la información que necesitamos, ahora tenemos que encontrarla :P Puede parecer difícil, pero sabemos dos cosas importantes. La primera es que estamos buscando un paquete de GoEar (vale, no ayuda mucho, pero algo es algo) y la segunda es que el archivo xml que queremos lo llama un programa flash (el reproductor de GoEar está en flash). ¿Qué os parece si le decimos a Wireshark que nos muestre sólo los paquetes de GoEar que hayan sido pedidos por un programa flash? Para hacerlo, en filter escribiremos:

http.referer contains "swf" && http.host contains "www.goear.com"

http.referer es una cabecera HTTP que indica qué página reliza la petición y busco las que sean “swf” porque esa es la extensión de los ficheros flash. Recordad que nos interesan las peticiones del reproductor de GoEar, que está hecho en flash.

Sólo aparecen dos, uno es un gif (no nos interesa) y el otro una dirección url misteriosa que recibe como parámetro el ID de la canción. Si la cargamos en el navegador veremos que es el xml que contiene la ruta al mp3 :)

wireshark7

Quizá esta no sea la forma más sencilla de descubrir la cadena, pero me parece que es de las más fiables y en cuanto tengáis un poco de práctica con el programa, no lleva ni 2 minutos todo el proceso.

About the Author

Me llamo Pablo Carballude González, soy graduado en computación y con master en HCI y Seguridad Informática. Actualmente trabajo para Microsoft como Developer Evangelist. Soy de esas personas que no saben si los textos autobiográficos deben ser en primera o tercera persona. Lo intenté en segunda, pero no le entendí nada :P