Tag Archives: 64bit

64位Windows操作系统手工为驱动程序添加数字签名

交作业的文章,其实装系统当天就搞定这个问题了,一直懒得写,现在也懒,流水账记录之。
故障现象:Dscaler在系统升级为64位Windows 2008后不工作。
原因:Dscaler的程序所调用的64位驱动不带数字签名,而MS自从Vista开始在64位系统加载内核驱动要强制签名了。
解决方案:自己伪造签名。
过程:
1,打开系统的testsigning模式,使得非权威CA发放的签名可以使用
bcdedit /set testsigning on
2,做一个签名证书出来。
MakeCert –r –pe –ss PrivateCertStore –n CN=dawnh.net(test) dawnh.cer
3,把证书加进本机信任根CA中去。
CertMgr -add dawnh.cer -s -r localMachine root
4,给驱动签名。
Signtool sign /v /s PrivateCertStore /n dawnh.net(test) /t http://timestamp.verisign.com/scripts/timestamp.dll dsdrv4.sys
 说明:
1,dsdrv4.sys就是所要签名的驱动文件名称了,Dscaler默认安装的是32位的,64位的要单独下载。
2,MakeCert.exe,CertMgr.exe和Singtool.exe在基本系统中不附带,不过Plateform SDK,.netFramework SDK,Visual Studio里面都有,拣自己方便弄得安一个就是。
3,命令中dawnh.net,dawnh都可以替换成你自己喜欢的,不过反正是fake的,你自己爱写什么写什么,如果要签其他驱动把dsdrv4.sys换成你要的文件名就是了。
4,要reboot。
5,testsigning打开后据说会影响到DRM,会使有DRM的玩意儿失效,不过我等贫民还没看见什么东西用DRM。
6,喜欢学习的好同学想知道原理自己去啃文档:
http://msdn2.microsoft.com/en-us/library/aa906247.aspx
感想:
1,打上testsigning开关后重起系统屏幕四个角会出来Test mode,上面中间会出来版本号和build。看起来很酷,不过还好不是Safe Mode XD
2,如果我自己能这么做绕过MS的签名机制,病毒不是也能嘛。那强制签名和安驱动时跳个可以被屏蔽掉的警告框也没什么区别了嘛!噢,对了,所以才给你打个Test mode的标,别怪我没提醒
3,有没有给病毒或木马发证书的CA?

个人Desktop试水64位

虽然拥有X86_64指令扩展的CPU(AMD Athlon 64 3000+)已经有1年多了,但一直没有利用起来,原因是64位的软件还未跟进。
然而在这次硬件升级之后,又起了跟进64位的念头,现在32位确实是末代了,越来越没有几天活头了。据说MS决定下一代操作系统将不会存在32位版本。
于是下载了64位的Windows Server 2008 RC0,安装过程不详述,与32位没有二致,一直到安装完成第一次正常启动,都感觉不到64位的存在感。
安装完成后大部分硬件都自动安装好了驱动,与32位系统并无区别,需要单独安装的也就是显卡而已,下载了公版64位驱动安装,一切正常。对于我来说,还有一块电视卡是而外需要安装驱动的,还好Philips SAA7134的控制芯片有公版驱动,因此也没费什么力就搞定了。
总体来说硬件和系统平滑升级。
系统方面的变动,明显的只有能看到Program Files变成两个,多了一个Program Files (x86),用来放32位软件的,另外就是任务管理器里如果进程是32位的后面会多一个*32的后缀。
然后发现了个有意思的事情,就是IE会分为原先32位和64位两个,默认是启动32位的,这样其他浏览器扩展软件以及插件等都可以通用。另外是Windows Media Player只有32位的。
剩下的其他软件就是要慢慢来找的问题了,一般的应用软件问题不大,毕竟是机器代码级别的兼容,有问题的都集中在那些需要安装内核级别驱动的软件,因为32位的驱动不可能工作在64位的系统下,而即使是64位的驱动,自从Vista起就强制要求驱动需要带有有效证书验证的数字签名,这才是麻烦的事情。
还好现在的软件都逐渐在这方面开始跟上步调了,我碰到的第一个出问题的就是Daemon Tools,还好厂商提供了带有签名的64位驱动。
第二个出问题的是我用的第三方电视卡软件–Dscaler,这个本身要加载其自己的nPNP驱动,但是这玩艺没签名,于是就不能跑了,且几乎没有解决放案,现在要做的是怎么想办法解决这个问题。
剩下的等今后用一阵子慢慢发现慢慢解决吧。
另外,感谢fcicq同学提醒,Blog的Google PR更新了,目前是3,有点小惊喜。