使用注册表禁用BCD测试签名选项

时间:2014-06-17 10:29:56

标签: bcdedit

我的代码应禁用使用Windows注册表测试BCD选项。与命令行bcdedit -set testsigning off相同。

我无法使用cmd执行shellexecute。我在注册表中找到了HKLM\SYSTEM\ControlSet001\Control\SystemStartOptions值中的一个Testsigning引用,但是该值包含当前内核运行选项,而不是下一次启动的选项。

所以,我不能用它。

我发现testigning选项保存在HLKM\BCD00000000\Objects\{%GUID%}\Elements\16000049中,但是这个GUID在不同的PC上是不同的。

我如何获得它?

1 个答案:

答案 0 :(得分:1)

如果您不想为所有启动条目激活它,那么

  • 枚举" Objects"
  • 下面的所有关键名称
  • 将注册表值循环写入每个找到的密钥名称。

使用NT本机API,您的方法可能类似于以下伪代码:

while(numEntries < index){
    NtEnumerateKey(index++, &pGuidKeyname...);
    RtlStringCbPrintfW(buf, %s, rootkey,pGuidKeyname);
    NtSetValueKey(buf, "YES");
}