Отключение опции подписи тестов BCD с использованием реестра

Мой код должен отключить тестирование подписи BCD с помощью реестра Windows. Так же, как командная строка bcdedit -set testsigning off,

Я не могу сделать shellexecute с cmd. Я нашел одну ссылку Testsigning в реестре, в HKLM\SYSTEM\ControlSet001\Control\SystemStartOptions значение, но это значение содержит текущие параметры запуска ядра, а не параметры для следующего запуска.

Так что я не могу это использовать.

Я обнаружил, что опция подписи тестов сохраняется в HLKM\BCD00000000\Objects\{%GUID%}\Elements\16000049, но этот GUID отличается на разных компьютерах.

Как я мог приобрести это?

1 ответ

Если вы не хотите активировать его для всех загрузочных записей:

  • Перечислите все имена ключей под "Объектами"
  • Запишите значения реестра в цикле в каждое найденное имя ключа.

При использовании нативного API NT ваш подход может выглядеть примерно так:

while(numEntries < index){
    NtEnumerateKey(index++, &pGuidKeyname...);
    RtlStringCbPrintfW(buf, %s, rootkey,pGuidKeyname);
    NtSetValueKey(buf, "YES");
}
Другие вопросы по тегам