iOS: inyección de gancho en teléfonos sin jailbreak
1. Prepare una aplicación escrita por usted mismo y empaquetela con un certificado ad hoc
2. Después del empaquetado, puede instalarla en el teléfono de prueba
3. Respecto a esto, descomprima ipa y obtenga un archivo de aplicación (primero cambie el nombre de .ipa a zip y luego descomprima para obtener el archivo .app)
4. Muestre el contenido del paquete y vea el contenido del paquete original
5. Puede usar la línea de comando para verlo (tenga en cuenta la ruta actual $otool -L YoungTest
6. Instale iOSOpenDev
7. Escriba). Hook, escríbalo solo en el archivo Hook1. No se han modificado otros archivos
OSOpenDevDevice establece la IP de su dispositivo (por ejemplo: 192.168.1.10).
El valor booleano iOSOpenDevInstallOnProfiling. El valor predeterminado es SÍ, si se debe instalar de forma remota al crear perfiles en el dispositivo.
No modifique este elemento en iOSOpenDevPath, es la ruta de instalación de iOSOpenDev.
El booleano iOSOpenDevRespringOnInstall El valor predeterminado es SÍ, si se debe reiniciar SpringBoard después de la instalación.
iOSOpenDev se instala en /opt/iOSOpenDev de forma predeterminada, donde puede encontrar el archivo de encabezado de undocumentapi
8. Coloque Hook1 y yololib en el paquete (esta herramienta llamada yololib puede ayudarnos a inyectar dylib directamente)
9. Utilice yololib para inyectar el gancho en la aplicación
$./yololib YoungTest Hook1.dylib
10. Verifique y descubra que la inyección fue exitosa
p>
11. Después de que la inyección sea exitosa, elimine yololib, elimine _CodeSignature y reemplace embeded.mobileprovision con su propio archivo de configuración.
(Se debe generar un conjunto de certificados de APP en la cuenta de desarrollador)
12. Genere la información de configuración de la aplicación original (tenga en cuenta la ruta actual)
$ codesign -d --entitlements :- /Users/iOS/Desktop/ADHoc/Payload/YoungTest.app > sss.plist p>
13. Firme Hook1, YoungTest, archivos embebidos.mobileprovision
youngstardeMacBook-Pro:Payload iOS$ codesign -f -s "iPhone Distribution: MingXing Yang (AX6366456P)" YoungTest.app/Hook1 dylib
youngstardeMacBook-Pro: carga útil iOS$ codesign -f -s "Distribución de iPhone: MingXing Yang (AX6366456P)" YoungTest.app/Sengled.mobileprovision
youngstardeMacBook-Pro: carga útil iOS $ codesign -f -s "iPhone Distribution: MingXing Yang (AX6366456P)" YoungTest.app/YoungTest
Como se muestra en la figura
14. Firme todo el archivo de la aplicación de acuerdo con el archivo de configuración recién generado
codesign -f -s "iPhone Distribution: MingXing Yang (AX6366456P)" --entitlements sss.plist YoungTest.app/
15.La inyección de HOOK ha sido completado y volveré al archivo anterior y buscaré la aplicación,
16. Genera ipa a través de iTunes e instálalo en tu teléfono con iTool
También hice muchos desvíos, principalmente certificados Para evitar confusiones, es mejor eliminar todos los demás certificados inútiles del llavero y dejar el certificado que desea empaquetar. Lo he explicado con el mayor detalle posible. Si tienes alguna pregunta, ¡deja un mensaje!