ONE Jailbreak Ad

Checkm8 exploit per i dispositivi Apple A5-A11 su iOS 12 - iOS 16

checkm8

Il 27 settembre 2019 axi0mX ha rilasciato checkm8 (leggi "scacco matto"), un exploit bootrom permanente e non patchabile per centinaia di milioni di dispositivi iOS. Nel 2022, l'exploit è ancora in esecuzione sui moderni jailbreak di iOS 15 e iOS 16 per dispositivi Apple con SoC A9-A11.

Che cos'è Checkm8?

Checkm8 è un exploit bootrom con ID CVE-2019-8900 utilizzato per eseguire codice non firmato su iOS, iPadOS, tvOS e watchOS, con processori compresi tra A5 e A11. Viene utilizzato principalmente per il jailbreak dei dispositivi Apple ed è il cuore del popolare jailbreak checkra1n.

I jailbreak basati su checkm8 sono jailbreak semi-tethered, poiché l'exploit sfrutta un meccanismo "use-after-free" nello stack DFU USB. È utilizzato da ipwndfu, Fugu14, checkra1n, Palera1n, Blizzard Jailbreak, ayakurume e un paio di altri strumenti per exploitare iOS 12 – iOS 17.

Utilizzando l'exploit checkm8, è possibile eseguire il codice solo quando si collega l'iPhone o l'iPad al computer in modalità DFU tramite un cavo USB. checkra1n consente di effettuare il jailbreak da iOS 12 a iOS 14 con supporto per le modifiche e non è mai stato aggiornato per aggiungere il supporto per iOS 15.

Screenshot del VLS con codice sorgente checkm8 caricato per dispositivi arm64.

L'exploit bootrom Checkm8 è in grado di eseguire codice anche su iOS 15. Nebula, lo sviluppatore di Palera1n Jailbreak, ha rilasciato il primo jailbreak per iOS 15 basato su checkm8 con supporto per tweak injection su iOS 15.0 - 15.3.1. Funziona anche fino a iOS 15.7 su dispositivi A9-A11 senza tweak.

Come funziona? Nel linguaggio di programmazione C, la funzione malloc dovrebbe restituire NULL se non è in grado di allocare memoria della dimensione richiesta. Il chiamante dovrebbe verificare se il puntatore restituito è NULL e gestire l'errore. Nella bootrom S5L8920 questa funzione non è implementata correttamente. Quando non è in grado di allocare memoria, invece di NULL restituisce un puntatore all'indirizzo di memoria 0x8.

Checkm8 sfrutta questa vulnerabilità, rendendo possibile l'esecuzione di codice su iOS, iPadOS, tvOS e watchOS. Questo bug è presente su tutti i dispositivi Apple A5-A11 e non può essere risolto. Pertanto, iOS 16 è vulnerabile e può essere jailbroken sui dispositivi supportati.

Nota: la maggior parte delle generazioni di iPhone e iPad sono vulnerabili e possono essere sfruttate tramite checkm8: dall'iPhone 4S (chip A5) all'iPhone 8 e iPhone X (chip A11).

Nuovi dispositivi come iPhone 14, iPhone 14 Pro, iPhone 13 Mini, iPhone 13, iPhone 13 Pro, iPhone 13 Pro Max, iPhone 12, iPhone 12 Pro, iPhone 12 Mini, iPhone 12 Pro Max, iPhone 11 Pro, iPhone 11, iPhone 11 Pro Max, iPhone XR, iPhone XS Max e iPhone XS sono a prova di checkm8.

axi0mX, lo sviluppatore dell'exploit checkm8, ha rilasciato il codice sorgente con licenza GPL-3.0, rendendo possibile l'implementazione con strumenti di terze parti. Inoltre, l'exploit checkm8 fa parte del suo strumento di jailbreak open source ipwndfu per dispositivi iOS, scritto in Python e Assembly.

Inoltre, l'exploit checkm8 per A5–A11 è implementato anche dallo script SSH Ramdisk per creare e avviare un ramdisk SSH sui dispositivi checkm8. Questo strumento può essere utilizzato per installare file IPA in modo permanente su iOS standard. Il TrollStore IPA Installer è stato trasferito in questo modo.

Codice sorgente di checkm8

L'exploit checkm8 è stato scritto in Assembly. Di seguito, puoi visualizzare il codice sorgente dell'exploit checkm8 per tutti i dispositivi arm64, incluse tutte le varianti di iPhone 5S, iPhone 5S, iPhone SE, iPhone 7, iPhone 8 e iPhone X. Il codice sorgente di checkm8 è stato pubblicato tramite jailbreak di ipwndfu.

 .text .pool .set PAYLOAD_OFFSET, 0xBAD00006 .set PAYLOAD_SIZE, 0xBAD00007 .set PAYLOAD_DEST, 0xBAD00005 .set PAYLOAD_PTR, 0xBAD00008 .set gUSBSerialNumber, 0xBAD00002 .set gUSBSRNMStringDescriptor, 0xBAD00004 .set gUSBDescriptors, 0xBAD00001 .set usb_create_string_descriptor, 0xBAD00003 .global _main _main: MOV X19, #0 // HACK: do not free this usb request STP X29, X30, [SP,#-0x10]! MOV X29, SP LDR X0, =gUSBDescriptors LDP X0, X1, [X0] ADR X2, USB_DESCRIPTOR LDP X3, X4, [X2] STP X3, X4, [X0] STP X3, X4, [X1] LDP X3, X4, [X2,#0x10] STP X3, X4, [X0,#0x10] STP X3, X4, [X1,#0x10] LDR X0, =gUSBSerialNumber find_zero_loop: ADD X0, X0, #1 LDRB W1, [X0] CBNZ W1, find_zero_loop ADR X1, PWND_STRING LDP X2, X3, [X1] STP X2, X3, [X0] LDR X0, =gUSBSerialNumber LDR X1, =usb_create_string_descriptor BLR X1 LDR X1, =gUSBSRNMStringDescriptor STRB W0, [X1] LDR X0, =PAYLOAD_DEST ADR X1, _main LDR X2, =PAYLOAD_OFFSET ADD X1, X1, X2 MOV X2, #0 LDR X3, =PAYLOAD_SIZE LDR X4, =PAYLOAD_PTR ADD X5, X0, #0x18 STR X5, [X4] copy_loop: LDP X3, X4, [X1] STP X3, X4, [X0] LDP X3, X4, [X1,#0x10] STP X3, X4, [X0,#0x10] LDP X3, X4, [X1,#0x20] STP X3, X4, [X0,#0x20] LDP X3, X4, [X1,#0x30] STP X3, X4, [X0,#0x30] DC CIVAC, X0 DMB SY ADD X0, X0, #0x40 ADD X1, X1, #0x40 ADD X2, X2, #0x40 CMP X2, X3 B.CC copy_loop SYS #0, c7, c5, #0 DSB SY ISB LDP X29, X30, [SP],#0x10 RET USB_DESCRIPTOR: .word 0x190209, 0x80050101, 0x409fa, 0x1fe0000, 0x21070000, 0xa01, 0x8, 0x0 PWND_STRING: .asciz " PWND:[checkm8]"

Jailbreak di Checkm8

Fin dal giorno del rilascio, l'exploit checkm8 è stato utilizzato da molti strumenti per il jailbreak di iOS. Alcuni di essi sono già pubblicati e pronti all'uso, altri sono ancora in fase di sviluppo. Solo Palera1n per iOS 15 consente di installare modifiche, altri strumenti non sono ancora stati rilasciati o sono utili solo agli sviluppatori.

Strumenti di bypass di iCloud checkm8

L'exploit checkm8 è anche un elemento importante nello sviluppo di tutti gli strumenti di bypass di iCloud, che consentono agli utenti di rimuovere la schermata di attivazione e accedere alla schermata Home del dispositivo su iOS 12 – iOS 16. La maggior parte degli strumenti richiede un jailbreak con palera1n o checkra1n e non funziona con una scheda SIM; tuttavia, il Wi-Fi funziona, consentendo il sideload delle app e l'accesso all'App Store.

Author Photo
Scritto da

Kuba Pawlak è un appassionato tester di strumenti per il jailbreak e app IPA, con anni di esperienza nella personalizzazione di iOS. Partecipa attivamente alle comunità di jailbreak online e ai forum di Reddit, aiutando gli utenti a trovare modi sicuri ed efficaci per migliorare i loro iPhone e iPad. Puoi seguire gli ultimi aggiornamenti e approfondimenti di Kuba su X (Twitter).

Comments

  • J

    J 2 mesi fa

    Hi Kuba,
    My device is passcode locked (my girlfriend forgot the code). I need to reset it and I have limited internet data. I downloaded a beta IPSW but idevicerestore can only use it if I have your bootrom exploit in place. I am on Linux. Is it possible to bootrom exploit the locked phone? It's iPhone 13.

    Thank you!

    • qbap

      qbap 2 mesi fa

      You can't. There is no working solution for the iPhone 13. Apple patched all exploits.

Pubblica un commento

Ultimi post

Certificato gratuito per FlekStore

Scarica il certificato FlekStore per firmare gratuitamente i file IPA

FlekStore ha aggiunto una nuova, interessante funzionalità per tutti: ora puoi collegare il tuo account sviluppatore per firmare i file IPA direttamente sul tuo dispositivo, o persino importare il tuo certificato . Questo rende l'app una...

ONE Jailbreak vs iOS Ninja

La migliore alternativa a iOS Ninja per scaricare IPA nel 2025

Nel 2023, iOS Ninja era uno dei siti più popolari per scaricare file IPA per iOS. Se avevi bisogno di uno strumento per il jailbreak, di un emulatore, di un'app modificata o semplicemente volevi provare qualcosa che Apple...

Nugget

App Nugget per iOS: sblocca il potenziale dell'iPhone su iOS 18

LeminLimez ha rilasciato un nuovo progetto che consente agli utenti di attivare alcune funzionalità nascoste di iOS su iOS 17/18. Ho dato un'occhiata a Nugget, un software open source che promette di abilitare Dynamic Island, Always On Display, impostare...