从64位版本的Windows Vista和更高版本的Windows开始,驱动程序代码签名策略要求所有驱动程序代码都具有数字签名。此外,32位版本的Windows Vista和更高版本的Windows的某些配置还要求对驱动程序代码进行数字签名,以便访问受内容保护策略控制的下一代高级内容。
在任何时候,您都可以使用(来自How to Test-Sign a Driver Package)
禁用此项检查Bcdedit.exe -set TESTSIGNING OFF
然后重启。之后,您可以安装任何您想要用户PC的驱动程序。我们的软件使用驱动程序来保护内存不被读/写。但如果您可以使用手工制作的证书安装驱动程序,则可以打破保护并执行您想要的操作。为了防止出现这种情况,我想检查有关代码签名策略实际状态的环境。
答案 0 :(得分:1)
回答第一个问题:
Windows中的此类操作由注册表项管理。负责引导配置数据的注册表项存储在“HKLM \ BCD00000000”下。它包括不同的对象,每个对象包括不同的元素。
在您的情况下,“{9dea862c-5cdd-4e70-acc1-f32b344d4795}”对象包含名为“23000003”的元素。通过选中“23000003”的“元素”值,您可以访问另一个GUID。您可以在“HKLM \ BCD00000000 \ Objects”下找到该特定GUID。
如果我们调用该键GUIDXXX,您可以在“HKLM \ BCD00000000 \ GUIDXXX \ Elements \ 16000049”下找到控制TESTSIGNING的dword值:Element。通过将此值设置为0可以禁用TESTSIGING,并通过设置为1来启用TESTSIGING模式。 此外,您只需检查该值即可识别它是打开还是关闭。
关于API,您可以使用注册表API,如RegOpen,RegQuery *,RegSet *等。
我把这些链接作为参考。它包含许多有用的信息和关于密钥的详细信息。
http://www.mistyprojects.co.uk/documents/BCDEdit/files/bcd_as_registry_hive.htm
http://www.mistyprojects.co.uk/documents/BCDEdit/files/object_element_codes.htm#generic