Red de conocimiento informático - Consumibles informáticos - Modo Iosshook sin jailbreak

Modo Iosshook sin jailbreak

Tenga en cuenta la diferencia entre el nombre y el propósito de la herramienta

Dylib generado por theos e iosOpenDev

Inserte dylib en un archivo binario.

Nombre de la herramienta de instalación

Modificar ruta de referencia de dylib

Se requieren archivos binarios modificados por algunas herramientas de renovación de firma, como diseño, suspiro, resignación y codiseño. Renunciar.

Segundo proceso

1. Generar dylib

Dylib puede ser generado por theos o iosOpenDev.

Theos es una herramienta desarrollada específicamente para jailbreak, y el dylib generado se puede utilizar directamente en máquinas con jailbreak.

Sin embargo, theos no es una herramienta compatible con Apple. Compila y genera un paquete deb en el lado Mac, lo instala en el sistema IOS, lo instala en modo complemento mediante dpkg del sistema IOS y luego genera dylib. Theos necesita llamar al SDK de desarrollo de IOS en el lado de Mac. Actualmente, no se pueden llamar los SDK superiores a 9.3 y las herramientas theos no se han actualizado.

IosOpenDev es una herramienta de generación de complementos oficialmente compatible con Apple y se puede generar directamente con Xcode.

Este dylib incluye dos tipos: CaptainHookTweak y Logos Tweak.

Sin embargo, no hay diferencia entre los dos: la sintaxis de Logos Tweak es relativamente simple y consistente con la de theos, mientras que CaptainHookTweak es más compleja.

2. Insertar dylib

Las tres herramientas pueden insertar dylib en archivos binarios, pero cada una tiene sus propias ventajas.

Yololib sólo puede insertar contenido de 32 bits en archivos binarios de 64 bits, pero se muestra a continuación.

Insert_dylib puede insertar 64 bits o 32 bits. También se puede utilizar para elegir si se elimina la firma original del archivo binario, es decir, LC_CODE_SIGNATURE.

Optool es más potente. Puede elegir qué LC LIB insertar. Este ejemplo no se utilizará por el momento.

3. Modificar la referencia de dylib

Después de insertar dylib, debe agregarle una referencia. Es decir, utilice la herramienta install_name_tool.

Esto se debe a que esto no se hizo antes, lo que provocó que el archivo firmado parpadeara y no se llamara a Dylan Lib.

Debido a que actualmente no hay ningún teléfono móvil con jailbreak disponible y el cydiaSubstrate dylib no ha sido llamado antes, este paso se interrumpe temporalmente (principalmente porque el cydiaSubstrate dylib de cada sistema de versión jailbreak es diferente. Hay Actualmente no hay un sistema de jailbreak, por lo que no existe un dylib correspondiente).

Pero puedes pensarlo detenidamente, porque el dylib de cydiaSubstrate existe en el teléfono con jailbreak, por lo que el complemento theos no necesita importar este dylib, solo agrega una referencia directamente.

Pero en un teléfono sin jailbreak, debes colocar este dylib de cydiaSubstrate en el paquete de la aplicación y agregar la ruta de referencia que tengas a mano.

En este caso, ¿por qué iosOpenDev, que se originó en Apple, tiene herramientas para desarrollar dylib?

Eso es porque Apple introdujo iosOpenDev para generar dylib, ¿que no es lo que quieres hacer? Apple requiere que agregue este dylib a su proyecto de IOS y le agregue una referencia en el proyecto. Si hay algunas actualizaciones de la aplicación en el futuro, solo necesitará actualizar este dylib, no toda la aplicación. Esto se llama actualización incremental en el desarrollo de iOS.

En lugar de utilizar la interfaz de enlace proporcionada por cydia, también puedes utilizar la interfaz de enlace utilizada por openDev.

La operación es la siguiente:

Respuesta: Agregue dylib en el paquete de la aplicación (si necesita llamar a la función MSHOOK del sustrato cydia, debe agregar el sustrato cydia dylib);

b: insertar herramienta. Tenga en cuenta que aquí hay un problema, es decir, para cada paquete copiado a dylib, además de agregarle una referencia usando install_name_tool e insertando el comando Mach-O LOAD, también necesita agregar una ruta ejecutable.

Primero, debes colocar un CD en el paquete de la aplicación.

Luego /users/陈丹/desktop/diff _ gancho/insert _ dylib @ ejecutable _ ruta/IOs _ gancho dylib gancho _ demo _ demo.

c: Firmémoslo más tarde.

Firme cada archivo modificado y agregado en el paquete de la aplicación.

codesign-f -s "Desarrollador de iPhone: 694708086@qq.com(t 4mm 3 jzdl 2)" gancho _ demo

codesign -f -s "Desarrollador de iPhone: 694708086@ qq.com(t 4mm 3 jzdl 2)" IOs _ hook . dylib

Luego agregue permisos de firma a todo el paquete de la aplicación.

código sign-f-s "iPhone desarrollador: 694708086@qq.com(t 4mm 3 jzdl 2)" -entitlements . plist hook _ demo app

Puedes instalar el paquete de la aplicación. directamente, también puedes usar xcrun para empaquetarlo en ipa para su instalación.

Contenido en dylib

4. Volver a firmar

Después de completar estos pasos,

primero debe firmar el archivo binario modificado dylib. Vuelva a firmar con cydiaSubstrate dylib, es decir, escriba desarrollador de iPhone en él: 694708086@qq.com (t 4 m3 jzdl 2).

Luego use xcrun para empaquetar el archivo de la aplicación en ipa, use iResign, sigh resign y otras herramientas para volver a firmar el paquete ipa antes de instalarlo en el sistema.

Vuelva a firmar el archivo de permisos entitlements.plist

Puede utilizar el archivo binario ldid -e para ver la generación de contenido del archivo de autorización.

En tercer lugar, la diferencia

Theos e iosOpenDev

Notas sobre cómo distinguir theosiosOpenDev

El código fuente del desarrollador de jailbreak appletheos es desarrollado por un tercero party, y iosOpenDev es desarrollado por el soporte oficial de Xcode de Apple.

La interfaz de usuario no tiene Xcode; theos aún no ha desarrollado una interfaz de interfaz de usuario y la interfaz de desarrollo de iosOpenDev es Xcode.

Compatibilidad con versiones Actualmente, theos solo admite SDK. Ambos admiten llamadas a SDK inferiores a iOS 9.3. theos solo admite SDK inferiores a 9.3. Actualmente el autor de theos no ha actualizado la herramienta.

Ajuste del logo del modo de idioma del gancho ajuste del logo, CaptainHookTweak

Diferencia entre las herramientas insert_dylib, optool y yololib

Distinguir la anotación insert_dyliboptoolyololib

Estructura de soporte 64, 32 bits admiten 64 y 32 bits solo admiten 64 bits.

Cuarto, resumen

Este método solo se puede utilizar en el proceso de vinculación de la aplicación en sí y no se puede utilizar en el proceso de vinculación a nivel del sistema.

Debido al mecanismo de espacio aislado en dispositivos sin jailbreak, las aplicaciones locales solo pueden acceder a los datos de esta aplicación y no pueden acceder a los datos de otras aplicaciones. Acceder a los datos del sistema (álbumes de fotos, geolocalización, etc.). ) también requiere el permiso del usuario. Sin mencionar el enlace de procesos a nivel del sistema.

Por supuesto, existe una tecnología que puede eludir el mecanismo de la zona de pruebas sin hacer jailbreak: http://chuansong.me/n/2248208.

Por ejemplo, esta persona desinstala el siguiente aplicación sin jailbreak Otra aplicación, una aplicación obtiene el contenido del archivo en una aplicación. Sin embargo, esta tecnología de vulnerabilidad no se ha hecho pública y sólo existe dentro del equipo de jailbreak. Además, esta técnica de explotación no logró enganchar los procesos a nivel del sistema.

Teóricamente, es posible enganchar el nivel del sistema sin hacer jailbreak, pero es bastante difícil (en otras palabras, si existen lagunas y tecnologías que pueden enganchar el nivel del sistema sin jailbreak, ¿por qué el jailbreak equipo necesita hacer jailbreak)