论文部分内容阅读
为什么驱动程序需要签名
大家知道,驱动程序是一类专为识别硬件及配置其功能的特殊程序,在默认的情况下,驱动程序会在系统启动时加载并在后台自动运行。如果驱动程序和系统不兼容,那么就极易造成系统不稳定甚至蓝屏、死机。因此,微软对于驱动程序的安装有更为严格的要求,必须通过其签名的文件才被许可安装。有认证签名就说明这个驱动程序通过了微软的安全认证,可以保证驱动程序的兼容性比较可靠,不容易产生与系统的兼容性故障。对于正常安装的驱动程序,打开其属性窗口,在“数字签名者”处都可以看到“Microsof tWindows”的字样(图2)。
自己动手为驱动程序签名
首先到“https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk”下载并安装适合自己的系统使用的“Windows SDK”,程序默认安装在“C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x64”中,下面的命令文件均来自此SDK,并保存在该目录下,请定位到该目录后运行相应的命令。
1生成并配置证书
以管理员身份启动命令提示符,输入下列的命令并回车执行(每条命令输入后均需回车确认,rem为注释无需输入,下同),接着在弹出的窗口中设置密码(图3):
rem 进入MakeCert.exe所在的目录C D " C : \ P r o g r a m F i l e s ( x 8 6 ) \
Windows Kits\10\bin\10.0.20348.0\x64"rem 设置证书发布者为cfan(可以自行定义)
MakeCert.exe -r -sv C:\myDrivers.pvk -n CN="cfan" C:\myDrivers.cer完成上述的操作后,继续在命令提示符窗口中输入并执行下列的命令:
rem 为上面创建的证书创建生成自我签名证书
c e r t 2 s p c C: \ my D r i v e r s . c e r C: \myDrivers.spc
rem 导出pfx文件,其中“123456”为图3窗口设置的密码
pvk2pfx -pvk C:\myDrivers.pvk -pi123 4 5 6 -spc C:\myDr i ver s.spc -pf xC:\myDrivers.pfx -po 123456
2為驱动程序签名
完成上述的操作后,在C盘新建一个名为mydrivers的文件夹,同时将没有签名的驱动文件全部复制到该文件夹中,其中的dramx 6 4.exe即为未签名驱动的安装程序(图4)。
同上,再返回命令提示符窗口输入并执行“signtool sign /f C:\myDrivers.pfx /p 123456c:\mydrivers\dramx64.exe”命令。其中“/p”后的数字为图3所示窗口中设置的密码,后面为需要签名的安装程序(图5)。
这样,再打开资源管理器并选中“c:\mydrivers\dramx64.exe”,右击并依次选择“属性→ 数字签名”,可以看到该文件签名者已经变为“cfan”(这是在图3这一步的命令行中设置的签名)(图6)。
不过,对于自行签名的证书默认没有得到系统的信任,我们还需要将证书安装到“受信任的根证书颁发机构”。在图6所示的窗口中依次点击“详细信息→查看证书”,接着在打开的窗口中点击“安装证书”(图7)。
在打开的安装证书向导中,存储位置依次选择“本地计算机→下一页→将所有的证书都放入下列存储(P)”,点击“浏览”选择“受信任的根证书颁发机构”,这样自行签名的证书就可以被信任了(图8)。
完成上述的操作后,这样我们就可以在电脑上正常运行“dramx64 .exe”,完成驱动程序的安装了。