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:
- ¿El
twrp decrypt
¿el comando emite algo más cuando el descifrado tiene éxito? - ¿El descifrado exitoso crea un dispositivo de bloque en
/dev/block/dm-0
¿que puedo sondear? - ¿Debo esperar unos segundos después de cada intento antes de comprobar el éxito?
- ¿Existe algún tipo de tiempo de espera oculto (se requiere esperar 30 segundos después del intento)?
- ¿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.1 votos
No estoy seguro, en realidad... Suena como parte de la encriptación forzada de Oreo...
1 votos
Esto fue extremadamente útil para mí, ya que estoy en el mismo barco. Para cualquier otra persona en la misma zona, aquí es cómo hacer un bucle de bash sobre 0 a 9999: adb shell # para entrar en el dispositivo. \n for i in $(seq -f "%04g" 0 9999) \n hacer \n eco $i \n twrp decrypt $i \n dormir 30 \n hecho \n (EDIT: Reemplazar \n con saltos de línea para ver esto correctamente...)