
Un'implementazione di baton drop (CVE-2022-21894) per armv7 (MSM8960)
Dato che la correzione di policyhax (alias golden key) funziona effettivamente sui sistemi Qualcomm, ho recuperato un Dell XPS 10 funzionante ma venduto per parti per portare baton drop su MSM8960.
Ecco il risultato.
Estrai image.7z sul tuo dispositivo USB formattato GPT fat32, copia la tua applicazione di avvio EFI non firmata in \boot.efi, avvia il tuo dispositivo Windows RT MSM8960 con essa e goditi il risultato.
Tutto il sorgente del payload (incluso divide.obj da MS CRT, che stage2 richiede) è incluso. Per la compilazione, usa un prompt dei comandi del cross-compilatore MSVC. Esegui make_cert.bat per creare un certificato autofirmato, build_mcupdate.bat per compilare stage1, build_stage2.bat per compilare stage2, build_boot.bat per compilare la boot.efi hello world.
0xA000_0000. Probabilmente potrebbe essere impostato più avanti se si volesse usare baton drop solo per un jailbreak UMCI (quando si sfrutta baton drop, il menu delle opzioni avanzate mostra l'opzione nointegritychecks); ricorda che sullo sfruttamento di win8.x osdevice deve essere un volume crittografato BitLocker con il bit 0 della flag di chiave impostato (può essere impostato manualmente come nel caso di payload.vhd, ma di solito è impostato per VMK sigillato da TPM con avvio protetto per la convalida dell'integrità).
0xC000_0000 funziona per far caricare a baton drop un payload, ma in una situazione di dual boot causerebbe il mancato avvio di NT.hal.dll è stata modificata per aggiungere mcupdate.dll ai suoi import, ed è autofirmata.mcupdate.dll carica efiesp:\stage2.dll e efiesp:\boot.efi, ottiene tutti i puntatori di cui stage2 ha bisogno e chiama l'entrypoint di stage2.BlpArchSwitchContext per tornare al contesto firmware per chiamare i servizi EFI