Отключение опции подписи тестов 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");
}