iPhone: Recuperación de Recuperación

http-equiv=»Content-Type» content=»application/xhtml+xml; charset=utf-8″ />

/ * <[CDATA [* / var asciidoc = {/ / Namespace!. / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Indice generador / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / * Autor: Mihai Bazon , septiembre de 2002 * http://students.infoiasi.ro/ ~ mishoo ** Tabla de generador de contenido * Versión: 0.4 ** Siéntase libre de utilizar esta secuencia de comandos en los términos de la GNU General Public License *, siempre y cuando lo hace no suprimir o alterar este aviso. * / / * Modificado por Troy D. Hanson, septiembre de 2006. Licencia: GPL * / / * modificado por Stuart Rackham, 2006, 2009. Licencia: GPL * / / / toclevels = 1 .. 4. toc: function (toclevels) {function getText (el) {var text = ""; for (var i = el.firstChild; i = null; i = i.nextSibling!) {if (== i.nodeType 3 / * Node.TEXT_NODE * /) / / IE no habla constantes. texto + = I.Data; else if (i.firstChild = null!) Texto + = getText (i);} texto return;} function TocEntry (el, texto, toclevel) {this.element = el; this.Text = texto; this.toclevel = toclevel;} tocEntries función (EL, toclevels) {var result = new Array; var re = new RegExp ('[HH] ([1 -' + (toclevels 1) + '])') / / Función que escanea el árbol DOM para elementos de encabezado (la API DOM2 / / NodeIterator sería una mejor técnica, pero no con el apoyo de todos / / los navegadores). iterate var = function (el) {for (var i = el.firstChild;! i = null; i = i.nextSibling) {if (== i.nodeType 1 / * Node.ELEMENT_NODE * /) {var = mo re . exec (i.tagName); if (mo && (i.getAttribute ("clase") | | i.getAttribute ("className")) = "float"!) {resultado [result.length] = new TocEntry (i , getText (i), mo [1] -1);} iteración (i);}}} iterate (el); return resultado;} var toc = document.getElementById ("toc"); if (toc) {! vuelta;} / / Eliminar entradas de la TDC existentes en caso de que estamos volviendo a cargar el TOC. var tocEntriesToRemove = []; var i; for (i = 0; i «+» «+ n «.» + + nota + «

«; var id = palmos [i] getAttribute («id»);. if (id = nulos!) refs [«#» + id] = n;}} si (n == 0) noteholder.parentNode.removeChild (Bonista); else {/ / Proceso footnoterefs. for (i = 0; i

yo estaba tratando de la fuerza bruta de un código de acceso de 4 iPhone para la recuperación de datos. El teléfono estaba en mal estado y tenía modificaciones sufridas: el botón de inicio había sido sustituido, así como la cubierta posterior, tal vez más. No pude conseguir de forma fiable el teléfono en modo de recuperación, posiblemente el resultado de un botón de inicio defectuosa, así que usé de libimobiledevice ideviceenterrecovery .

Funcionó maravillosamente. Tal vez demasiado maravillosamente. Finalmente he conseguido modo DFU (el botón de inicio era probablemente el culpable de hacer esto normalmente sencillo proceso bastante difícil), ejecuté mi hazaña, y obtuve el código y los datos. Mi objetivo era desbloquear el teléfono y hacerlo pasar a otro investigador. Pero, cuando reinicié el teléfono después del modo DFU encontré fue en la recuperación de nuevo!

Probé una variedad de cosas, de tratar de descansar con FirmwareUmbrella (anteriormente TinyUmbrella) para desmontar el teléfono y desconectar la batería, pero nada funcionó. Entonces un colega (gracias, Perry) sugirió iRecovery

Qué es libirecovery?

libirecovery es una biblioteca multiplataforma que implementa la comunicación a iBoot / iBSS encontrado en los dispositivos iOS de Apple a través de USB. También se proporciona una utilidad de línea de comandos.

https://github.com/libimobiledevice/libirecovery
– libirecovery

libirecovery se puede compilar en Linux. Descubrí que tenía que instalar el paquete libreadline-dev en mis ubuntu instalar, pero usted puede encontrar que tiene que hacer más, dependiendo de los paquetes que ya estén instalados. Edificio que exige la ejecución del autogen.sh , seguido por hacer y luego make install . Tuve que correr también ldconfig para registrar la biblioteca ya que esto no se hace de forma automática.

La utilidad de línea de comandos es la iRecovery herramienta. Se utiliza de la siguiente manera:

  iRecovery - Utilidad de recuperación iDevice Uso /> -i  Objetivo específico del dispositivo por su hexadecimal 
ECID-v Inicie iRecovery en modo detallado
-c Enviar comando al cliente
. - f Enviar archivo al cliente.
-k [carga] Enviar usb exploit para el cliente.
-h Muestra esta ayuda.
-r Restablecer cliente.
-s Arranca el shell interactivo.
-e