0

私のコードでは、Windows レジストリを使用して BCD オプションのテスト署名を無効にする必要があります。コマンドラインと同じbcdedit -set testsigning off

shellexecutecmdではできません。レジストリで 1 つの Testsigning 参照をHKLM\SYSTEM\ControlSet001\Control\SystemStartOptions値で見つけましたが、この値には、次回の起動のオプションではなく、現在のカーネル実行オプションが含まれています。

だから、私はそれを使用することはできません。

testsigning オプションは に保存されていることがわかりましたHLKM\BCD00000000\Objects\{%GUID%}\Elements\16000049が、この GUID は PC によって異なります。

どうすれば入手できますか?

4

1 に答える 1

1

すべてのブート エントリに対してアクティブ化することを気にしない場合:

  • 「オブジェクト」の下にあるすべてのキー名を列挙します
  • 見つかったすべてのキー名にループ内のレジストリ値を書き込みます。

NT ネイティブ API を使用すると、アプローチは次の疑似コードのようになります。

while(numEntries < index){
    NtEnumerateKey(index++, &pGuidKeyname...);
    RtlStringCbPrintfW(buf, %s, rootkey,pGuidKeyname);
    NtSetValueKey(buf, "YES");
}
于 2015-01-03T03:02:52.060 に答える