厳密名のアセンブリを Dotfuscator で処理する

厳密名が付けられたアセンブリはデジタル署名されています。これにより、署名後にアセンブリが変更されていないかどうかを実行時に確認できます。署名には SHA1 ハッシュが使用され、ハッシュは RSA 公開/秘密キー ペアの秘密キーで署名されています。署名と公開キーは、共にアセンブリのメタデータに埋め込まれています。

Dotfuscator はアセンブリを変更してしまうため、Dotfuscator を使ってアセンブリを処理した後に署名を行うことは不可欠です。

ms227311.pro(ja-jp,VS.90).jpg Dotfuscator Professional Edition では、この署名の作成を難読化処理の一環として実行できます。Standard Edition または Community Edition を使用している場合は、難読化完了後の別のビルド ステップにおいて署名処理を完了する必要があります。

難読化後の手動による再署名

ms227311.ce(ja-jp,VS.90).jpg 開発中のアセンブリや Dotfuscator で処理する前のアセンブリに対しては遅延署名を行い、Dotfuscator による処理を終了後、署名プロセスを完了する必要があります。アセンブリの遅延署名の詳細については、.NET Framework のドキュメントを参照してください。

厳密名を持つアセンブリを適切に難読化するには、次の手順を実行します。

  • 開発の段階でアセンブリに対して遅延署名を行います。遅延署名を行うには、アセンブリに 2 つのカスタム属性を埋め込みます。C# を使用している場合は、AssemblyInfo.cs に次の 2 行を記述します。
[assembly:AssemblyKeyFileAttribute("keyfile.snk")] [assembly:AssemblyDelaySignAttribute(true)]
  • 1 行目の keyfile.snk は公開キーが格納されているファイルの名前です。
  • アセンブリのテスト中に厳密名の検証を無効に設定するには、.NET Framework に付属する厳密名ツール (sn.exe) を次のように使用します。
sn -Vr TestAsm.exe
  • 遅延署名されたアセンブリを Dotfuscator で処理して難読化します。
  • Dotfuscator による処理の完了後に、sn.exe を使用して、難読化されたアセンブリに対する検証を有効に設定します。これにより、難読化処理済みアセンブリの検証省略の登録が解除されます。
sn -Vu TestAsm.exe
  • 次のように sn.exe を使用して、Dotfuscator で難読化処理されたアセンプリに対する署名プロセスを完了します。keyfile.snk には実際に秘密キーが格納されているファイルの名前を指定します。
sn -R TestAsm.exe keyfile.snk

遅延署名したアセンブリのテストを行うときは、厳密名の検証を必ず無効にしてください。

© 2002-2007 PreEmptive Solutions. All rights reserved.