Detección de jailbreak

Hice jailbreak a mi iPad hace varios meses y luego no pude abrir la aplicación de Bloomberg que uso para el trabajo. ("El dispositivo ha sido desbloqueado".) Me di cuenta de que funcionaba>liberado (duh) y restauré mi iPad. Intenté abrir Bloomberg una vez más y decía "El dispositivo ha sido desbloqueado".

¿Qué hace el jailbreak que es irreparablemente detectable?

La verdadera respuesta a tu pregunta es Nada . Debido a la naturaleza de un jailbreak, las llamadas de nivel inferior se pueden conectar y modificar, algo que una aplicación de iOS no puede hacer. Básicamente, termina convirtiéndose en un desarrollador de aplicaciones que intenta jugar al escondite con un oponente omnisciente que sabe qué movimientos vas a hacer antes de que los hagas. Hay un paquete de software llamado xCon que elude la mayoría de las detecciones de jailbreak.

Respuestas (3)

Hasta donde yo sé, solo iBooks tiene el poder de bloquear realmente un dispositivo con jailbreak. Lo hace escribiendo un ejecutable sin firmar en la raíz del sistema. Si el dispositivo está bloqueado (sin jailbreak), no se puede ejecutar. Pero si el dispositivo tiene jailbreak, el ejecutable se ejecuta y iBooks se cierra (se bloquea). Pero esta es una aplicación patentada de Apple y el software de terceros no tiene este nivel de control. De hecho, todas las aplicaciones de terceros están en un espacio aislado y no pueden tocar nada fuera de su directorio de instalación respectivo.

Entonces, ¿qué está buscando? Los rumores afirman que busca a Cydia . Pero nuevamente, eso requeriría que la aplicación tenga acceso al sistema ya que Cydia no está instalado en el directorio de instalación de su usuario ( /private/var/mobile/Applications) sino en la raíz del sistema ( /private/var/stash/Applications). E incluso si eso fuera cierto, significaría que una vez que borres tu jailbreak, debería funcionar como se espera. En este caso, ese no parece ser el caso (a menos que haya guardado el estado del dispositivo en las preferencias de la aplicación).

Pero todavía hay un archivo al que tal vez pueda acceder:

/private/var/mobile/Library/Preferences/com.saurik.cydia.plist

Además, este archivo se lleva junto con sus copias de seguridad, ya sea que el dispositivo tenga jailbreak o no una vez que se haya creado.

O eso o la aplicación simplemente consultó el estado de su dispositivo cuando se le hizo jailbreak y guardó esa información, manteniéndola incluso después de que eliminó el jailbreak (como se mencionó anteriormente). Sin embargo, si desinstaló y reinstaló la aplicación después del jailbreak, entonces no debe preocuparse por eso. Pero si tiene algún archivo de preferencia sobrante del jailbreak, es posible que deba borrarlo. Vuelva a hacer jailbreak y elimínelos a través de ssh o reinstale iOS, pero elija en lugar de configurar su dispositivo usando una copia de seguridad, comience limpio.

Esta no parece ser la única aplicación que busca un jailbreak. Tanto Time Warner Cable como Skype tienen un historial de hacer esto. Desafortunadamente, todavía no hay información creíble sobre cómo logran esto. Dado que están vinculados a API restrictivas como todas las aplicaciones de terceros en la App Store, no creo que sea tan sofisticado.

No tenía idea de que las aplicaciones tuvieran la capacidad de "verificar" el jailbreak, muy interesante/desafortunado.

No estoy seguro de si esto es lo que está sucediendo en su caso particular, sin embargo, como parte de JailBrake, el archivo 'hosts' se modifica para que el dispositivo no se comunique con Apple para obtener actualizaciones en lugar del sitio de actualización de JailBrake. Buscaría artículos que discutan cómo restablecer el archivo de hosts.

Sin embargo, ¿cómo una aplicación normal tiene acceso al archivo de hosts cuando no está Jailbreak?
@tekknolagi Precisamente. En primer lugar, las aplicaciones no pueden tocar el archivo de hosts ni nada a nivel del sistema; todos están en un espacio aislado. En segundo lugar, el jailbreak no toca el archivo de hosts.
Muy bien... ¿de qué otra manera, entonces?
Una aplicación podría intentar ponerse en contacto con el servidor de actualización de Apple. La pila tcp incorporada verificará el archivo de hosts para la dirección IP asociada, que en el caso del freno de la cárcel no sería la adecuada. Esto dependería de la aplicación que está probando esto para saber qué direcciones IP son las correctas.
-1 El hostsarchivo en iOS nunca se toca durante el proceso de jailbreak. Además, no existe un sitio de actualización de jailbreak. Además, cuando se escribió su respuesta, iOS nunca verificó nada en los servidores de actualización de Apple.

Hay muchas maneras de identificar una computadora/dispositivo. Por ejemplo, su dirección MAC o UUID pueden haber sido incluidos en la lista negra.

Está hablando de identificar un jailbreak, no su dispositivo. GRAN diferencia ahí.
No sabemos por qué Bloomberg arroja el error. Es posible que su dispositivo esté en la lista negra y que Bloomberg solo esté repitiendo el mensaje de error.
¿Cómo se pone en la lista negra?
Las aplicaciones de @iglvzx no tienen el poder de incluir dispositivos en la lista negra. No solo se rechazaría ese código, lo que impediría la aprobación de la aplicación, sino que tendría poco sentido, desde un punto de vista financiero, ya que el jailbreak NO es ilegal y los dispositivos pueden pasar fácilmente del estado de jailbreak al estado bloqueado. Prohibir un teléfono directamente por una infracción es más que draconiano y no es una muy buena posición para adoptar, desde el punto de vista empresarial.
Entonces, incluso si fuera tan simple como que los servidores de Bloomberg bloquearan la dirección MAC de @tekknolagi, ¿Apple no lo permitiría?
*Lo siento. Me refiero a la dirección IP.
@iglvzx Correcto. De hecho, recientemente hicieron un cambio en el SDK para evitar que los desarrolladores hicieran más que una interrogación básica del dispositivo. Dado que Apple controla el dispositivo, hay muy poca necesidad de que los desarrolladores accedan a las partes internas.