4

VeriSign を使用して exe に署名した後、exe を右クリックすると、証明書に関する情報を提供する「デジタル署名」タブが表示されます。この情報は正確にどこに保存されますか? オペレーティング システムは、どの証明書がどのファイルに関連しているかをどのように認識するのでしょうか? 署名中に exe 内に埋め込まれているものはありますか? 署名されたexeから証明書を抽出するためのc#コードを書くにはどうすればよいですか?

どんな助けでも大歓迎です。

更新:アセンブリとの証明書の関係がどのように保存されているかを正確に見つけることができませんでしたが、問題を解決しました。アセンブリ パスを渡すことで、X509Certificate オブジェクトを作成できます。私の仕事は、シリアル番号と所有者を取得することでした。このために書いた次のコード。

 X509Certificate cert = X509Certificate.CreateFromSignedFile("Solo4Orchestra.exe");
            MessageBox.Show(cert.Subject.Split(new char[1]{','})[3].Replace("O=",""));
            MessageBox.Show(cert.GetSerialNumberString());

ありがとう。昭恵

4

2 に答える 2

1

Windows Authenticode Portable Executable Signature Formatは、バイナリ形式に関する情報を提供する場合があります。

署名をチェックするための Windows API CryptQueryObject()があります。そのための.NET APIもあるかもしれませんが、明らかにそうではありません:失効リストを取得するためのサンプルコードを含む関連するMSDNの記事では、Windows API呼び出しも使用しているようです: CRLから情報を取得する方法(.NET) (良いかもしれません)その関数のラッパーを実装するための開始点)。

于 2010-09-27T06:57:18.897 に答える
0

前述のとおり、これは Authenticode 署名形式です。私の知る限り、.NET で Authenticode (署名と検証の両方) をサポートしているのは、PKIBlackboxコンポーネントだけです。

于 2010-09-27T07:38:16.067 に答える