9 votos

Intentar forzar el patrón de seguridad de Android a través de TWRP vía adb

Ayer, de alguna manera, olvidé el patrón de seguridad de Android en mi teléfono. Debido a la memoria muscular, más o menos sé lo que era, pero no puedo averiguar el verdadero patrón. Por lo tanto, estoy intentando forzarlo para que me permita desbloquear el teléfono de nuevo.

Descifrar con patrón
Desde que tengo instalado el TWRP recovery, puedo usar el twrp decrypt 'passphrase' para los intentos de descifrado. Estoy usando un patrón 4x4 (OnePlus5, LineageOS, Android 8.1, TWRP clockworkx 3.2.3-1) para el cual cada punto en la cuadrícula se traduce en un carácter diferente, que debe concatenar para construir su frase de contraseña. Creo que la cuadrícula 4x4 se ve así:

1   2   3   4
5   6   7   8
9   :   ;   <
=   >   ?   @

Tener un patrón de líneas desde la parte superior izquierda hasta la parte inferior derecha daría una frase de paso de 16;@ , permitiéndole descifrar su teléfono en TWRP usando adb shell twrp decrypt '16;@' . ( a través de )

Intento de fuerza bruta
A través de este método he intentado todos los posibles patrones que creo que podrían ser, pero no he conseguido desencriptarlo. El comando siempre devuelve Attempting to decrypt data partition via command line. a stdout y nada más. Estoy intentando rápidamente cada patrón uno tras otro sin demora, detectando si alguna salida de comando difiere de la salida esperada (lo cual no ha ocurrido todavía).

Preguntas
Como todavía no lo he conseguido, me pregunto si mi implementación es correcta. No tengo un teléfono para probar, así que tengo algunas preguntas:

  1. ¿El twrp decrypt ¿el comando emite algo más cuando el descifrado tiene éxito?
  2. ¿El descifrado exitoso crea un dispositivo de bloque en /dev/block/dm-0 ¿que puedo sondear?
  3. ¿Debo esperar unos segundos después de cada intento antes de comprobar el éxito?
  4. ¿Existe algún tipo de tiempo de espera oculto (se requiere esperar 30 segundos después del intento)?
  5. ¿Hay algún otro método que pueda utilizar para comprobar el éxito?

Herramienta de fuerza bruta
Construí la siguiente herramienta para este intento de fuerza bruta, si eso es relevante para la implementación que he utilizado: apbf

No entiendo qué es lo que falla en esta aplicación. No parece descifrar correctamente el teléfono, lo que me hace pensar que la clave podría estar corrupta.

Actualmente estoy reiniciando la recuperación después del intento de alcance, pero eso lleva mucho tiempo para 1400 patrones posibles. Me gustaría estar seguro de que el intento no es inútil.


Como conozco la longitud aproximada del patrón, estoy seguro de que sólo se utilizan las dos columnas de la derecha y sé que los puntos del patrón nunca tienen una distancia superior a 1, puedo reducir mucho el espacio de búsqueda del patrón y limitar las posibilidades.

El cifrado está activado en el teléfono, creo que está basado en archivos. Cuando en TWRP, el /data/data y /sdcard parece tener una lista de nombres de archivos encriptados.

0 votos

Estás haciendo algo sin sentido...

0 votos

Borra los datos de la aplicación de la pantalla de bloqueo y ya está.

2 votos

@Zillinium lamentablemente eso no funciona, parece que la clave de encriptación para /data está protegido por la frase de contraseña. En su día funcionó, pero ya no. Corrígeme si me equivoco.

7voto

Tim Visee Puntos 156

Después de un tiempo descubrí cuál era el problema, con un teléfono recién flasheado. Aquí voy a responder a mi propia pregunta.


  1. ¿El comando twrp decrypt muestra algo más cuando el descifrado tiene éxito?

    Sí, sale algo así:

    Attempting to decrypt data partition via command line.
    Data successfully decrypted
    Updating partition details...
    ...done
  2. ¿El descifrado exitoso crea un dispositivo de bloque en /dev/block/dm-0, que puedo sondear?

    No.

  3. ¿Debo esperar unos segundos después de cada intento antes de comprobar el éxito?

    -

  4. ¿Existe algún tipo de tiempo de espera oculto (se requiere esperar 30 segundos después del intento)?

    ¡muy importante! Acerca de 10 segundos . Los intentos consecutivos dentro de ese plazo fallan sin ningún tipo de aviso.

  5. ¿Hay algún otro método que pueda utilizar para comprobar el éxito?

    -


Así, los intentos consecutivos de invocar twrp decrypt deben tener al menos 10 segundos entre ellos o de lo contrario fallarán. Así que, lo único que estaba mal en la herramienta desarrollada, es que no implementé este tiempo de espera.

1 votos

¿has conseguido desencriptar tus datos anteriores?

0 votos

Lamentablemente, no. Como ya llevaba muchas horas intentándolo, simplemente borré mi teléfono y probé la herramienta después con un patrón que sabía que era correcto. Fue entonces cuando descubrí el tiempo de espera. Si lo hubiera sabido antes, habría podido desencriptar los datos anteriores, sí.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X