私はプロジェクトのためのexeを持っています。imは電子署名で署名しています。つまり、管理者権限を求めるときに会社名が表示されます。これは非常にうまく動作しますが、exeファイルを変更すると、そのファイルはまだ動作し、代わりに不明なファイルが表示されます。デジタル署名をプログラムでチェックする
変更されたバージョンの実行を避けるためにexeを実行したときにデジタル署名が有効かどうかを確認する方法はありますか?
のVisual Studio 2008 窓7
私はプロジェクトのためのexeを持っています。imは電子署名で署名しています。つまり、管理者権限を求めるときに会社名が表示されます。これは非常にうまく動作しますが、exeファイルを変更すると、そのファイルはまだ動作し、代わりに不明なファイルが表示されます。デジタル署名をプログラムでチェックする
変更されたバージョンの実行を避けるためにexeを実行したときにデジタル署名が有効かどうかを確認する方法はありますか?
のVisual Studio 2008 窓7
Here署名を検証サンプルプログラム(それはWinVerifyTrust
機能を使用しています)ですが、私はそれはあなたがそれを試してみてくださいWindows 7の下で働くということはよく分かりません。
UACが既に必要であることを考慮すると、「コンピュータの構成\ Windowsの設定\ローカルポリシー\セキュリティオプション」のGPOオプション「署名され、検証された実行可能ファイルのみを昇格する」を設定するだけでは不十分ですか?便利かもしれない"Use Certificate Rules on Windows Executables for Software Restriction Policies"設定もあります。
これらの設定は、バイナリが変更されたときに自分自身を信頼できなくなるという点で、自分のアプリケーションからチェックしようとするよりも優れています。
WinTrustVerifyはmakeの呼び出しです。バイナリはコード署名されていると伝えます。特定の証明書(たとえばあなたの会社)に署名されていることを確認する必要がある場合は、CertVerifyCertificateChainPolicyを呼び出して(おそらくループ内で)検証する必要があります。 – selbie