The Man Who Fell From The Wrong Side Of The Sky:2019年4月15日分

2019/4/15(Mon)

[Windows] Windows 10 64bitに未署名ドライバをインストール

前回の続き、VistaのIn-boxドライバから引っこ抜いた古いSCSIドライバ

がWindows 10 32/64bitともに自分の使う範囲では問題なく動くのを確認したので、SCSI機器の為だけに別個にオフラインでサポート切れOSを動かすみたいな運用はせずにすみそうやな。

ちなみにVistaのIn-boxドライバにはinfファイルに対する署名が含まれるセキュリティカタログ(.cat)が無いので、OSインストール後にドライバ適用しようとするとブロックされてしまう(component.manというXML署名はあるんだがこれは使えないようだ)。 どっちみちデバイスIDを追加するのにINF大幅に書換えてるのであってもなくても同じだけどね、対策方法は後述。

カーネルモードドライバはWindows 64bitの場合は署名が必須だけどこれはbinary blobにあればよく、infファイルが未署名でもインストールに一度成功してしまえば問題なさそう。つまり

というチェック条件みたい。

セキュアブートが有効だとMicrosoftのWHQL署名以外も蹴られるそうだけど、VistaのIn-boxドライバはSHA1形式ではあるけどMSによる署名があるのでブロックされることはないはず、ちょっと今UEFIなマシンは別件に使ってるので試験できんすまんな。 あとはSHA1もブロックされてSHA256のみになる可能性だけど、それまで生きてないと思うからええわ。

あとは大型アップデート時に勝手にアンインストールされることがあるとのことなので、そこの検証が必要なんやな。 あれアップグレードインストールと同等だからな…もしめんどくさいことになりそうならさすがに32bitに逃げる。

そんで未署名ドライバがブロックされる問題の対策として世の中では

するというクッソめんどくさい手順が必要で、binary blobに署名のないドライバを動かす場合は避けようがないのだけど、infの署名検証回避だけならもっと簡単に一回の再起動で済ませる方法ある。

これWindows PEから起動してオフラインで DISM /Add-Driverコマンド叩いてインストールしてしまえば何度も再起動繰り返す必要ないんだよな。

つまりinfの署名検証タイミングはDriverStoreにインストールするタイミングだけで、オフラインで統合してしまえばPlug & Playでデバイスが見つかった時には検証されないということ。

なんならインストールイメージにドライバ統合してしまってもいい、これも

ってするだけ、よくわからないなら NTLiteあたりのGUIお助けツールもあるからね。