
Recientemente compré un termostato inteligente que se conecta a mi wifi. Puedo controlar el dispositivo a través de una aplicación en mi teléfono.
La aplicación deja mucho que desear y me gustaría escribir mis propios scripts en mi PC de escritorio para conectarme con el dispositivo y poder controlar y registrar datos del mismo.
Puedo ver la dirección MAC y la dirección IP del dispositivo en la lista de dispositivos conectados en la interfaz de administración de mi enrutador, pero no puedo determinar qué puerto usa el dispositivo para comunicarse con la aplicación en mi teléfono.
Si hubiera una aplicación de escritorio para el dispositivo, simplemente usaría Fiddler para detectar el tráfico, pero como la aplicación está en mi teléfono, no conozco una alternativa.
Probé varios escáneres de puertos y escaneé todos los puertos en la IP del dispositivo, pero no obtuve resultados.
¿Cómo puedo saber cómo se comunica la aplicación con el dispositivo para poder realizar ingeniería inversa?
Detalles adicionales: la aplicación del fabricante está en Android y me gustaría comunicarme con el dispositivo desde una PC con Windows.
Editar: intenté seguir las instrucciones aquí:https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureForAndroidpara redirigir el tráfico de mi teléfono a través de Fiddler. Mientras uso el navegador en mi teléfono, puedo ver el tráfico que se registra en Fiddler, pero cuando uso la aplicación de termostato, no se registra nada. Extraño.
Respuesta1
Para saber qué puerto se utiliza desde su aplicación, puede detectar las conexiones de sus dispositivos mientras usa la aplicación (enlace en el comentario deSaaru Lindestøkke) o instala un emulador de terminal en su teléfono Android y usa el netstat
comando.
netstat -lt
enumera todos los puertos en los que su dispositivo o software está escuchando y esperando conexiones TCP ( netstat -lu
hace lo mismo para las conexiones UDP).
netstat -t
enumera todas las conexiones TCP actualmente en curso. use este comando mientras usa la aplicación para ver los puertos en uso desde esta aplicación específica. ( netstat -u
para UDP)