改ざんチェックは、アプリケーションが Dotfuscator で処理された以降に変更されているかどうかを検出するタイプのチェックです。
たとえば、攻撃者が規制を回避したりライセンス情報を削除したりするようにアプリケーションのバイナリを変更した場合には、改ざんチェックはそのような変更を検出し、アプリケーションに通知したり、攻撃者を妨害したりして対応することができます。 つまり、改ざんチェックはアプリケーションに対する不正な改ざんを検出して対応します。
改ざんチェックの構成
Dotfuscator でアプリケーションに改ざんチェックを差し込むには、次のようにします。
- チェックを有効にします。
- チェックのユーザー インターフェイスを使用するか、
TamperCheckAttributeのアノテーションをソース コードに付けることにより、チェックを構成します。
これらのどちらの方法でも、チェックの動作を決めるさまざまなプロパティを指定できます。
詳細については、[チェック]属性ページの TamperCheckAttribute セクションを参照してください。
サポートされないアプリケーションの種類
Dotfuscator は、以下に挙げる .NET アセンブリ以外のすべての .NET アセンブリに改ざんチェックを差し込むことができます。
- .NET 1.0 を対象とするアセンブリ
- ネイティブ コードおよびマネージ コードを含んでいる Managed C++ アセンブリ
- マルチ モジュール アセンブリ
- .NET Compact Framework アセンブリ。
- Xamarin アセンブリ
- UWP アセンブリ
- .NET Core アセンブリ
- .NET 5+ アセンブリ
テスト
アプリケーションに差し込まれた改ざんチェックがアセンブリの改ざんに対応する動作をテストするために、Dotfuscator には TamperTester.exe というコマンド ライン ユーティリティが付属しています。このユーティリティは、アセンブリのメタデータを変更することにより、改ざんをシミュレートします。
保護されているアプリケーションが改ざんにどのように対応するかをテストするには
- Dotfuscator コマンド プロンプトを開きます。
-
開いた場所が、保護されているアセンブリのディレクトリでない場合は、そこに移動します。たとえば、次のようにします。
cd C:\YourApp\Dotfuscated -
TamperTester.exe AssemblyName.exeと入力します。ここで、AssemblyName.exeは改ざんされたバージョンを作成するアセンブリの名前です。- ユーティリティの 2 番目の引数として、改ざんされたアセンブリを格納するディレクトリを指定することもできます。 指定しなかった場合、改ざんされたアセンブリは、そのアセンブリがあるディレクトリの
tamperedという名前のサブディレクトリに格納されます。
- ユーティリティの 2 番目の引数として、改ざんされたアセンブリを格納するディレクトリを指定することもできます。 指定しなかった場合、改ざんされたアセンブリは、そのアセンブリがあるディレクトリの
- 本ユーティリティにより、アセンブリの改ざんされたバージョンが作成されます。
-
その他の出力アセンブリを改ざんされたバージョンのディレクトリにコピーします。たとえば、次のようにします。
xcopy /d *.* tampered - 改ざんされたアセンブリを実行し、改ざんチェックを入れた場所を用いて、アプリケーションがどのように改ざんに対応するかを観察します。