32bitアプリに自己証明インストールして警告メッセージを変える実験
管理者権限で Windows Vista のUACが有効になってる状態でアプリを実行すると…
こんな風になりますよね・ω・
これを自己証明書でダイアログを変更する実験をしてみます
証明書の作成
makecert -a sha1 -r -pe -ss MofMofCertStore -n "CN=Pink Flying Whale Root.,O=Pink Flying Whale,C=JP,E=メアド" pfwroot.cer -b 06/25/2014 -e 06/25/2054 -sv pfwroot.pvk -sr LocalMachine |
パスワードを聞かれるので、作成します。
3回とも同じものを入れます。
"D:\Microsoft Platform SDK for Windows Server 2003 R2\Bin\Cert2Spc" PfwRoot.cer PfwRoot.spc "D:\Microsoft Platform SDK for Windows Server 2003 R2\Bin\pvk2pfx.exe" -pvk PfwRoot.pvk -spc PfwRoot.spc -po さっき決めたパスワード -pfx PFWRoot.pfx -f |
次に実行ファイルに証明するためのファイルを作ります。
Windows SDKにある cert2pscというのと pvk2pfxを使います
SignTool sign /v /f PFWRoot.pfx /p MofMof /t http://timestamp.verisign.com/scripts/timestamp.dll "E:\PFW\MofBrw\Release\mofbrw.exe" |
これで証明書を書き込めました
certmgr.exe -add pfwroot.cer -s -r localMachine root certmgr.exe -add pfwroot.cer -s -r localMachine trustedpublisher |
次に証明書を登録します
登録できましたね。
では実行してみます。
ダイアログ変わりました。
この方法、64bitだとできないですけどね・ω・
この方法か類似方法で未署名64bitドライバに署名する方法があったりするのですが、うまく行かず結局署名無効化設定で起動という・・・・
あと、メーカードライバとかでも署名に問題があるのか導入後にダイアログとかで署名確認できていないだかのメッセージが出て署名無効化をしないといけなかったり。(低性能ノート向け動画再生支援カードのbroadcom BCM70015 のドライバとか)
この方法か類似方法で未署名64bitドライバに署名する方法があったりするのですが、うまく行かず結局署名無効化設定で起動という・・・・
あと、メーカードライバとかでも署名に問題があるのか導入後にダイアログとかで署名確認できていないだかのメッセージが出て署名無効化をしないといけなかったり。(低性能ノート向け動画再生支援カードのbroadcom BCM70015 のドライバとか)