
Реализация baton drop (CVE-2022-21894) для armv7 (MSM8960)
Поскольку исправление policyhax (также известное как golden key) действительно работает на системах Qualcomm, я приобрел рабочий, но продаваемый на запчасти Dell XPS 10, чтобы портировать baton drop на MSM8960.
Вот результат.
Извлеките image.7z на ваше USB-устройство, отформатированное в GPT fat32, скопируйте ваше неподписанное приложение для загрузки EFI в \boot.efi, загрузите ваше устройство MSM8960 Windows RT с ним и наслаждайтесь.
Все исходники полезной нагрузки (включая divide.obj из MS CRT, который требуется для stage2) включены. Для сборки используйте командную строку кросс-компилятора MSVC. Запустите make_cert.bat для создания самоподписанного сертификата, build_mcupdate.bat для сборки stage1, build_stage2.bat для сборки stage2, build_boot.bat для сборки hello world boot.efi.
0xA000_0000. Вероятно, его можно установить позже, если вы хотите просто использовать baton drop для обхода UMCI (при эксплуатации baton drop в меню дополнительных параметров отображается опция nointegritychecks); помните, что на win8.x для эксплуатации требуется, чтобы osdevice был томом, зашифрованным BitLocker, с установленным битом 0 ключа (может быть установлен вручную, как в случае с payload.vhd, но обычно устанавливается для VMK, защищенного TPM с Secure Boot для проверки целостности).
0xC000_0000 работает для загрузки полезной нагрузки baton drop, но в ситуации двойной загрузки приведет к сбою загрузки NT.hal.dll был пропатчен для добавления mcupdate.dll в его импорты и самоподписан.mcupdate.dll загружает efiesp:\stage2.dll и efiesp:\boot.efi, получает все указатели, необходимые для stage2, и вызывает точку входа stage2.BlpArchSwitchContext для переключения обратно в контекст прошивки для вызова служб EFI