1. 程式人生 > >64位Windows作業系統手工為驅動程式新增數字簽名(精華學習)

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,給驅動簽名。

 說明:

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,喜歡學習的好同學想知道原理自己去啃文件:

感想:

1,打上testsigning開關後重起系統螢幕四個角會出來Test mode,上面中間會出來版本號和build。看起來很酷,不過還好不是Safe Mode XD

2,如果我自己能這麼做繞過MS的簽名機制,病毒不是也能嘛。那強制簽名和安驅動時跳個可以被遮蔽掉的警告框也沒什麼區別了嘛!噢,對了,所以才給你打個Test mode的標,別怪我沒提醒 :D

3,有沒有給病毒或木馬發證書的CA?