http://bbs.pediy.com/thread-188472.htm
x64系统的强制数字签名以及PatchGuard一直阻碍着咱们研究64位驱动,因为加载不上,很是闹心,下面我就介绍给大家一些工具和手法,使得能够加载自己编写的驱动。 针对于Windows 7 x64系统,网上放出了破解补丁,打补丁后就能够加载,非常简单,不需要签名,顺带废除了PatchGuard。仅仅是添加了一个新启动项。 而对于Windows 8/8.1 x64,没人放工具,据说有人已经突破,但是不免费,所以就需要自己动动脑子了。 首先需要开启测试模式,BAT文件内容如下:
bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON
1 2 3 @bcdedit - set loadoptions DDISABLE_INTEGRITY_CHECKS @bcdedit - set TESTSIGNING ON @pause 取消测试模式:bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING OFF
1 2 3 @bcdedit - set loadoptions ENABLE_INTEGRITY_CHECKS @bcdedit - set TESTSIGNING OFF @pause 重启之后,就可以加载未信任驱动了,什么叫未信任:就是证书链不受信任,只有极个别的根证书才被Windows认可,从而顺利的加载驱动。而开启测试模式就能加载,则只要含有数字签名就能加载,确切的说是代码签名。 接下来需要做的就是给自己的驱动加上签名,当然是不花钱的。 需要一些工具,可以从SDK里找,也可以用我提供的附件。 第一步:生成一个证书。 1 @MakeCert -r -pe -a sha256 -cy end -n "CN=证书名字" -sv 文件名.PVK 文件名.CER 第二步:生成pfx(私有证书?) 1 @pvk2pfx -pvk 文件名.PVK -spc 文件名.CER -pfx 文件名.PFX 这一步可以加密码,具体可以通过/?查看说明。 第三步:代码签名。 1 @signtool.exe sign /v /f 文件名.PFX 驱动文件.sys 至此就可以加载这个驱动了。 至于PatchGuard还没想到办法。 上传的附件: no_pg_ds_v3_win7.rar (54.13kb,328次下载) CertTools.7z (105.12kb,210次下载)