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