自己署名でuiAccess=trueにする
プログラムメモ | 2009/10/20 Tue 05:24
| 自己署名を使って、uiAccess=trueを試してみた。
※Windows7 x64で確認しましたが、Vistaでは確認しておりません。
(1) VS2008でC++/CLRの適当なプロジェクトを作り、ビルド&起動確認。
wizardのままのFormだけで構いません。
(2) プロジェクトプロパティ→リンカ→マニフェストファイル
「UACによるUI保護のバイパス」を「はい」にする。
(3) ビルド&起動確認
「サーバーから紹介が返ってきました」と表示される。
(4) できたexeを "C:\Program Files\test2" にコピーする。
ここでは、"clitest4.exe" としています。
(5) 管理者でコマンドプロンプトを開き、
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
(パスを入れるのが面倒なので)
(6) フォルダ移動
cd "C:\Program Files\test2"
(7) ルート証明書を作る
makecert -n "CN=testroot,O=aaa,C=JP,E=foo@hoge.jp" -sv testroot.pvk -r testroot.cer
パスワードを聞いてきます。
![clip_1.gif clip_1.gif](http://www.hundredsoft.jp/win7blog/img/img12_clip_1.gif)
最後にもう一度尋ねられるので、先ほどのパスワードを入れます。
(8) ルート証明書を使ってデジタル署名用の証明書
makecert -n "CN=test,O=aaa,C=JP,E=foo@hoge.jp" -sv test.pvk -ic testroot.cer -iv testroot.pvk test.cer
先ほどと同じようにパスワードを聞いてきます。rootとは別のパスワードが良いです。
フォルダはこんな感じ。
![clip_18.gif clip_18.gif](http://www.hundredsoft.jp/win7blog/img/img13_clip_18.gif)
(9) testroot.cerをダブルクリックしてルート証明書をインストール
![clip_6.gif clip_6.gif](http://www.hundredsoft.jp/win7blog/img/img14_clip_6.gif)
信頼されたルート証明機関にストアします。
![clip_7.gif clip_7.gif](http://www.hundredsoft.jp/win7blog/img/img15_clip_7.gif)
(10) 今度は、test.cerをダブルクリックして証明書をインストール
![clip_8.gif clip_8.gif](http://www.hundredsoft.jp/win7blog/img/img16_clip_8.gif)
自動で個人に入ると思います。
![clip_9.gif clip_9.gif](http://www.hundredsoft.jp/win7blog/img/img17_clip_9.gif)
(11) mmcでスナップインの追加→証明書を追加して
信頼されたルート証明機関にtestroot
個人にtestが追加されていることを確認します。
![clip_20.gif clip_20.gif](http://www.hundredsoft.jp/win7blog/img/img18_clip_20.gif)
![clip_21.gif clip_21.gif](http://www.hundredsoft.jp/win7blog/img/img19_clip_21.gif)
(12) Signtool
先ほどのコマンドプロンプトで
Signtool signwizard
と入れると、デジタル署名ウィザードが始まります。
exeを選びます。
![clip_12.gif clip_12.gif](http://www.hundredsoft.jp/win7blog/img/img20_clip_12.gif)
カスタムを選びます。
![clip_13.gif clip_13.gif](http://www.hundredsoft.jp/win7blog/img/img21_clip_13.gif)
次の画面で「ファイルから選択」をクリック。
![clip_14.gif clip_14.gif](http://www.hundredsoft.jp/win7blog/img/img22_clip_14.gif)
X.509証明書の"test.cer"を選びます。
![clip_15.gif clip_15.gif](http://www.hundredsoft.jp/win7blog/img/img23_clip_15.gif)
次の画面で秘密キーファイルに、test.pvkを選びます。
パスワード画面後、「ルート証明書を含む証明のパスのすべての証明書」を選んで次へ。
![clip_16.gif clip_16.gif](http://www.hundredsoft.jp/win7blog/img/img24_clip_16.gif)
最後の完了でもう一度パスワードを入れます。
(13) 確認
C:\Program Files\test2\clitest4.exe
を動かすと、普通に起動します。
MT.exeで確認しても良いですし、バイナリを直接見ても、
uiAccess="true"が設定されていることがわかります。
![clip_22.gif clip_22.gif](http://www.hundredsoft.jp/win7blog/img/img25_clip_22.gif)
いきなりexeをバイナリで見る人もいないとは思いますが....
ルート証明書がないとやっぱり「サーバーから紹介が返ってきました」と表示される。
この方法だとBuildの度にサインしなければなりませんが、
2回目以降は、証明書はできているので、Signtool signwizard だけで良いです。
入力するものが決まれば、コマンドプロンプトでSigntoolを動かせるので、
ビルド後のイベントに追加して自動化できます。
念のため書くと、uiAccess="true"にしたコードは動作はしますが、
・証明書のインストールが必要。
・Windowsソフトウェアロゴを得るには、MSの特別許可が必要。
ということなので、汎用ソフトというより開発ツールの類でしょうか。
Tags: プログラムメモ
※Windows7 x64で確認しましたが、Vistaでは確認しておりません。
(1) VS2008でC++/CLRの適当なプロジェクトを作り、ビルド&起動確認。
wizardのままのFormだけで構いません。
(2) プロジェクトプロパティ→リンカ→マニフェストファイル
「UACによるUI保護のバイパス」を「はい」にする。
(3) ビルド&起動確認
「サーバーから紹介が返ってきました」と表示される。
(4) できたexeを "C:\Program Files\test2" にコピーする。
ここでは、"clitest4.exe" としています。
(5) 管理者でコマンドプロンプトを開き、
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
(パスを入れるのが面倒なので)
(6) フォルダ移動
cd "C:\Program Files\test2"
(7) ルート証明書を作る
makecert -n "CN=testroot,O=aaa,C=JP,E=foo@hoge.jp" -sv testroot.pvk -r testroot.cer
パスワードを聞いてきます。
![clip_1.gif clip_1.gif](http://www.hundredsoft.jp/win7blog/img/img12_clip_1.gif)
最後にもう一度尋ねられるので、先ほどのパスワードを入れます。
(8) ルート証明書を使ってデジタル署名用の証明書
makecert -n "CN=test,O=aaa,C=JP,E=foo@hoge.jp" -sv test.pvk -ic testroot.cer -iv testroot.pvk test.cer
先ほどと同じようにパスワードを聞いてきます。rootとは別のパスワードが良いです。
フォルダはこんな感じ。
![clip_18.gif clip_18.gif](http://www.hundredsoft.jp/win7blog/img/img13_clip_18.gif)
(9) testroot.cerをダブルクリックしてルート証明書をインストール
![clip_6.gif clip_6.gif](http://www.hundredsoft.jp/win7blog/img/img14_clip_6.gif)
信頼されたルート証明機関にストアします。
![clip_7.gif clip_7.gif](http://www.hundredsoft.jp/win7blog/img/img15_clip_7.gif)
(10) 今度は、test.cerをダブルクリックして証明書をインストール
![clip_8.gif clip_8.gif](http://www.hundredsoft.jp/win7blog/img/img16_clip_8.gif)
自動で個人に入ると思います。
![clip_9.gif clip_9.gif](http://www.hundredsoft.jp/win7blog/img/img17_clip_9.gif)
(11) mmcでスナップインの追加→証明書を追加して
信頼されたルート証明機関にtestroot
個人にtestが追加されていることを確認します。
![clip_20.gif clip_20.gif](http://www.hundredsoft.jp/win7blog/img/img18_clip_20.gif)
![clip_21.gif clip_21.gif](http://www.hundredsoft.jp/win7blog/img/img19_clip_21.gif)
(12) Signtool
先ほどのコマンドプロンプトで
Signtool signwizard
と入れると、デジタル署名ウィザードが始まります。
exeを選びます。
![clip_12.gif clip_12.gif](http://www.hundredsoft.jp/win7blog/img/img20_clip_12.gif)
カスタムを選びます。
![clip_13.gif clip_13.gif](http://www.hundredsoft.jp/win7blog/img/img21_clip_13.gif)
次の画面で「ファイルから選択」をクリック。
![clip_14.gif clip_14.gif](http://www.hundredsoft.jp/win7blog/img/img22_clip_14.gif)
X.509証明書の"test.cer"を選びます。
![clip_15.gif clip_15.gif](http://www.hundredsoft.jp/win7blog/img/img23_clip_15.gif)
次の画面で秘密キーファイルに、test.pvkを選びます。
パスワード画面後、「ルート証明書を含む証明のパスのすべての証明書」を選んで次へ。
![clip_16.gif clip_16.gif](http://www.hundredsoft.jp/win7blog/img/img24_clip_16.gif)
最後の完了でもう一度パスワードを入れます。
(13) 確認
C:\Program Files\test2\clitest4.exe
を動かすと、普通に起動します。
MT.exeで確認しても良いですし、バイナリを直接見ても、
uiAccess="true"が設定されていることがわかります。
![clip_22.gif clip_22.gif](http://www.hundredsoft.jp/win7blog/img/img25_clip_22.gif)
いきなりexeをバイナリで見る人もいないとは思いますが....
ルート証明書がないとやっぱり「サーバーから紹介が返ってきました」と表示される。
この方法だとBuildの度にサインしなければなりませんが、
2回目以降は、証明書はできているので、Signtool signwizard だけで良いです。
入力するものが決まれば、コマンドプロンプトでSigntoolを動かせるので、
ビルド後のイベントに追加して自動化できます。
念のため書くと、uiAccess="true"にしたコードは動作はしますが、
・証明書のインストールが必要。
・Windowsソフトウェアロゴを得るには、MSの特別許可が必要。
ということなので、汎用ソフトというより開発ツールの類でしょうか。
Tags: プログラムメモ
author : HUNDREDSOFT | - | -