
Uma implementação do baton drop (CVE-2022-21894) para armv7 (MSM8960)
Dado que a correção do policyhax (também conhecido como golden key) realmente funciona em sistemas Qualcomm, peguei um Dell XPS 10 funcional, mas vendido como peças, para portar o baton drop para o MSM8960.
Aqui está o resultado.
Extraia a image.7z para o seu dispositivo USB formatado em GPT fat32, copie o seu aplicativo de boot EFI não assinado para \boot.efi, inicialize seu dispositivo Windows RT MSM8960 com ele, aproveite.
Todo o código-fonte do payload (incluindo divide.obj do MS CRT, que o stage2 requer) está incluído. Para compilar, use um prompt de comando do compilador cruzado MSVC. Execute make_cert.bat para criar um certificado autoassinado, build_mcupdate.bat para compilar o stage1, build_stage2.bat para compilar o stage2, build_boot.bat para compilar o boot.efi hello world.
0xA000_0000. Ele provavelmente poderia ser definido mais tarde se você quisesse apenas usar o baton drop para um jailbreak de UMCI (ao explorar o baton drop, o menu de opções avançadas mostra a opção nointegritychecks); lembre-se de que, na exploração de win8.x, é necessário que osdevice seja um volume criptografado com BitLocker com o bit 0 da flag de chave definido (pode ser definido manualmente, como é o caso de payload.vhd, mas geralmente é definido para o VMK selado pelo TPM com boot seguro para validação de integridade).
0xC000_0000 funciona para o baton drop carregar um payload, mas em uma situação de dual boot faria o NT falhar ao inicializar.hal.dll foi corrigido para adicionar mcupdate.dll às suas importações e é autoassinado.mcupdate.dll carrega efiesp:\stage2.dll e efiesp:\boot.efi, obtém todos os ponteiros que o stage2 precisa e chama o ponto de entrada do stage2.BlpArchSwitchContext para alternar de volta para o contexto de firmware e chamar serviços EFI