Translate

sábado, 24 de febrero de 2018

Manual Extraer TOKEN de un producto XIAOMI para usar su API desde Android (Sin Root)

1. Habilitar en el dispositivo Android el modo desarrollador y la depuración USB y conectarlo al Ordenador

Descomprimir
Ir por el cmd de Windows al directorio donde hemos descomprimido el SDK Platform Tools y ejecutar adb backup -noapk com.xiaomi.smarthome -f backup.ab
En el dispositivo Android aceptar la copia de seguridad sin meterle password


Se crear un archivo en esa misma ruta que se llama bakckup.ab (Unos 30 megas)
Y en el dispositivo Android sale un mensaje de que la copia es correcta
3.       Descargar ADB Backup Extractor (https://sourceforge.net/projects/adbextractor/)
Descomprimirlo
Copiar el archivo de la copia de seguridad bakckup.ab a la carpeta recién descomprimida donde se ecuentra el archivo abe.jar (ADB Backup Extractor\android-backup-tookit\android-backup-extractor\android-backup-extractor-20180203-bin)
Ir a esa misma ruta desde el CMD de Windows y ejecutar
java.exe -jar abe.jar unpack backup.ab backup.tar
se creará un archivo en esa misma ruta que se llama backup.tar (unos 50 megas)
4.       Descomprimir el archivo backup.tar y veremos que aparece la base de datos miio2.db de la APP de xioami en la ruta backup\apps\com.xiaomi.smarthome\db
5.       Instalamos el programa DB Browser para SQLite (http://sqlitebrowser.org/) y lo abrimos. Arrastramos la BBDD a este programa y se abrirá.
Vamos a la pestaña ejecutar SQL y en la ventana pegamos el sig texto:
select token from devicerecord where localIP is "172.16.0.51"
Le damos al PLAY

Y en la ventana inferior nos muestra el TOKEN, podemos copiarlo con el raton.
NOTA: En lugar de sacar solo un token podemos sacar todos los de la SQL según su ip en una tabla con:
select token, localIP from devicerecord
Copiando todas las filas y las columnas podréis pegarlo en un Excel y contar que es de 32 caracteres para aseguraros de que es lo que buscáis.
En el Excel podéis contar el número de caracteres con =LARGO(A2)


viernes, 23 de febrero de 2018

Extraer TOKEN de un producto XIAOMI para usar su API desde IOS (Sin JailBreak)


1.       Hacer copia de seguridad del iphone con itunes en mono no cifrado


2.       Instalar el programa iBackup Viewer (http://www.imactools.com/iphonebackupviewer/)
Abrir el iBackup Viewer y seleccionar la última copia de seguridad (No debe tener un candado en ella)
Seleccionar estructura RAW


Seleccionar estructura de directorio


Buscar la carpeta: AppDomain-com.xiaomi.mihome, dentro tiene las carpetas library y Documents. En la derecha seleccionaremos Documents y la exportamos a nuestro PC (Por ejemplo al escritorio)


Nos crea la carpeta com.xiaomi.mihome que dentro tiene la Documents
Buscamos dentro de Documents el archivo xxxxxxxxxxxxx_mihome.sqlite (donde xxxxx es el núm. de ID de mi cuenta de Xioami que aparece en la parte de perfil de la APP de mi home)
3.       Instalamos el programa DB Browser para SQLite (http://sqlitebrowser.org/) y lo abrimos. Arrastramos la BBDD a este programa y se abrirá.
Vamos a la pestaña ejecutar SQL y en la ventana pegamos el sig texto:
select ZTOKEN from ZDEVICE where ZLOCALIP is "172.16.0.51"
Le damos al PLAY


Y en la ventana inferior nos muestra el TOKEN, podemos copiarlo con el raton.
NOTA: En lugar de sacar solo un token podemos sacar todos los de la SQL según su ip en una tabla con:
select ZTOKEN,ZLOCALIP from ZDEVICE
Copiando todas las filas y las columnas podréis pegarlo en un Excel.
Las versiones viejas de la app Mi HOME devuelve un token de 32 caracteres. Ese es el token que buscáis. Mientras que las apps nuevas de MI HOME devuelven en este caso un token de 96 caracteres, es un token cifrado que requiere hacer un paso extra.
En el Excel podéis contar el número de caracteres con =LARGO(A2)
4.       Vete a la URl http://aes.online-domain-tools.com/
Y para cada token que precises podrás descomprimirlo desde ella. Solo has de configurarla así:

** Input type: text
Input text (hex): your 96 character key
Selectbox Plaintext / Hex: Hex
Function: AES
Mode: ECB
Key (hex): 00000000000000000000000000000000
Selectbox Plaintext / Hex: Hex





Y en la parte inferior nos mostrará el token de 32 caracteres que buscamos. Aparece abajo en el cuadro de la derecha las 2 primeras líneas.



Podéis pegarlo es un TXT y luego al Excel y contar que es de 32 caracteres para aseguraros de que es lo que buscáis.

Si buscas otras opciones para sacar el token como por ejemplo un ios con jailbreak, un android, etc... no dejes de visitar el link https://github.com/jghaanstra/com.xiaomi-miio/blob/master/docs/obtain_token.md

Saludos

sábado, 17 de febrero de 2018

Programa de monitorizacion de equipos siempre encendidos

Posiblemente muchos de vosotros tengáis en vuestra RED de casa o de empresa equipo que siempre deben mantenerse encendidos. Me vienen por ejemplo a la mente equipos como:
- Camaras IP de vigilancia
- Grabadores de Camaras
- NAS
- Arduinos de monitorización
- Servidores
- Equipos de compartir impresoras o escaners
- Controles de infrarrojos
- Routers o puntos de accceso
- Equipos de mineria
Y cualquier cosa similar.



Pues aquí os dejo un programa de cosecha propia que se encargará de monitorizar este tipo de equipos y en el caso de que alguno esté mas de X minutos caído te mandará un correo electrónico.

Funciona bajo windows sin problema.

Seguirá enviando cada X minutos continuamente un mail hasta lo que volváis a encender.

Lo que hace el programa es hacer ping a esos equipos y si detecta X intentos de ping sin respuesta a  es cuando envía el mail. Para ello los equipos deben tener siempre la misma IP bien por que tengan IP fija o por que en el DHCP del router siempre se les asigna la misma por su MAC.

El programa lo podéis bajar de aquí:

https://drive.google.com/open?id=1xDfdLyT2UbSv7GEh5zUtzX0ukkxmWGnz

Y para ponerlo a funcionar solo debéis configurar el archivo config.ini del cual os dejo un ejemplo de como podría ser su configuración.

[SETTINGS]
name = IntelStickPiso_IPsSiempreOnApagadas
ip_list =172.16.0.49,172.16.0.48,172.16.0.41,172.16.0.40,172.16.0.36,172.16.0.35,172.16.0.34,172.16.0.33,172.16.0.32,172.16.0.31,172.16.0.27,172.16.0.25,172.16.0.20,172.16.0.18,172.16.0.17,172.16.0.16,172.16.0.15,172.16.0.14,172.16.0.13,172.16.0.12,172.16.0.11
time_to_repeat = 5
times_for_home_alone = 3
num_pings = 3
allowUnreachable = False
user = xxxxxxxxxxxxxxxxx@gmail.com
pass = xxxxxxxxxxxxxxxxx
smtp = smtp.gmail.com
port = 465
ssl = yes

* name será lo que se manda en el asunto junto con la IP caída.
* ip_list es la lista de IPs a vigilar que deben estar siempre encendidas
* time_to_repeat es el tiempo en minuto que espera el script hasta volver a ejecutarse
* times_for_home_alone es el num de intentos para determinar que un equipo está caído y no generar falsas alarmas
* num_pings es el num de paquetes que se utilizan en cada ping, 3 es lo habitual pero se puede subir si es necesairo
*allowUnreachable no utilizar es una variable usada en el desarrollo, no tiene ningún uso.

Llamad al .exe en el inicio de windows. Para esto debéis abrir la ventana de ejecutar (Win+R) y escribir shell:startup. Se os abrirá la carpeta de inicio de Windows y debéis crear en ella un acceso directo al .exe del programa. Así se llamará en el arranque de windows.