Paso 5: Cómo lo hicimos: Hacking Audio
Obtener vídeo no era demasiado difícil. ¿Que audio sería tan fácil, correcto? Después de algunas horas de búsqueda de Google, parecía que nunca nadie ha logrado con éxito extraer y decodificar el flujo de audio de una cámara IP. Fuimos por nuestra cuenta.
Volviendo a nuestro audiostream.cgi
url encontramos vía Wireshark, capturamos unos pocos bytes de audio con Ubuntu:
wget http://192.168.1.252:81/audiostream.cgi?user=admi...
Presione Ctrl + C para cortar la corriente. RAW de audio en la mano, que marchó sobre a audacia para intentar jugar mediante archivo -> Importar -> datos en bruto. Mayoría de los intentos sonaba como ruido, sin embargo hemos encontrado que usando el VOX ADPCM codificación a 8kHz produce algo reconocible!
Todavía estaba el asunto de eliminar ese patrón extraño de clicks. Pensé que tenía algo que ver con los paquetes, como con la secuencia de vídeo que teníamos que quitar algunos encabezados desde el principio hasta el final. ¿Tal vez lo mismo sucedió con el audio?
Nos miró un poco más de cerca a cada paquete y notó que los datos inició con la misma 0x55aa15a8... bytes, además de un valor que parecía estar contando hacia arriba cada paquete y una larga secuencia de ceros, para un total de 32 bytes. Presumiblemente, audacia fue tomando estas cabeceras de paquetes como datos de audio y tratando de decodificar, que es lo que hace los sonidos de chasquidos desagradables.
Algunos scripts de python experimental después, retiramos las cabeceras y pasa a través del decodificador ADPCM en Audacity - se retiraron la mayoría de los clics! Pero hubo algunos izquierdo, específicamente en las partes más ruidosos de audio.
Así leemos en cómo funciona ADPCM - al parecer codifica el audio a través de la diferencia entre las muestras y almacena el estado anterior de audio para que pueda añadir los dos y producir una nueva muestra. Después de unos pocos más scripts de python, logramos capturar los paquetes directamente y restablecer este estado al principio de cada paquete. Clicks fueron quitados totalmente, y nada pero el audio de la cámara permanecía. ¡ Un éxito!