改ざんチェック
改ざんチェックは、アプリケーションが Dotfuscator で処理された以降に変更されているかどうかを検出するタイプのチェックです。
たとえば、攻撃者が規制を回避したりライセンス情報を削除したりするようにアプリケーションのバイナリを変更した場合には、改ざんチェックはそのような変更を検出し、インシデントの遠隔測定を送信したり、アプリケーションに通知したり、攻撃者を妨害したりして対応することができます。 つまり、改ざんチェックはアプリケーションに対する不正な改ざんを検出して対応します。
改ざんチェックの構成
Dotfuscator でアプリケーションに改ざんチェックを差し込むには、まずコードの差し込みを有効にします。
次に、構成エディターを使用するか、TamperCheckAttribute
を使ってソース コードにアノテーションを付けることにより、チェックを構成します。
これらのどちらの方法でも、チェックの動作を決めるさまざまなプロパティを指定できます。詳細な一覧については、「チェック属性」ページの TamperCheckAttribute
セクションを参照してください。
Xamarin Android アプリケーションに改ざんチェックを追加する場合は、「保護の強化」ページの Xamarin Android 用の改ざんチェック セクションを参照してください。
サポートされないアプリケーションの種類
Dotfuscator は、以下に挙げる .NET アセンブリ以外のすべての .NET アセンブリに改ざんチェックを差し込むことができます。
- .NET 1.0 を対象とするアセンブリ
- ネイティブ コードおよびマネージ コードを含んでいる Managed C++ アセンブリ
- マルチ モジュール アセンブリ
- .NET Compact Framework アセンブリ。
- .NET Core アセンブリ
- Silverlight アセンブリ
- Unity アセンブリ
- UWP アセンブリ
- Windows Phone アセンブリ
- WinRT アセンブリ
- Xamarin iOS アセンブリ
テスト
.NET Framework
アプリケーションに差し込まれた改ざんチェックがアセンブリの改ざんに対応する動作をテストするために、Dotfuscator には TamperTester.exe
というコマンド ライン ユーティリティが付属しています。このユーティリティは、アセンブリのメタデータを変更することにより、改ざんをシミュレートします。
保護されているアプリケーションが改ざんにどのように対応するかをテストするには
1: コマンド プロンプトを開きます。
開いた場所が、保護されているアセンブリのディレクトリでない場合は、そこに移動します。たとえば、次のようにします。
cd C:\YourApp\Dotfuscated
TamperTester.exe AssemblyName.exe
と入力します。ここで、AssemblyName.exe
は改ざんされたバージョンを作成するアセンブリの名前です。
メモ: Dotfuscator のインストーラーは、自動的に Dotfuscator を PATH へ追加します。
- ユーティリティの 2 番目の引数として、改ざんされたアセンブリを格納するディレクトリを指定することもできます。
指定しなかった場合、改ざんされたアセンブリは、そのアセンブリがあるディレクトリの
tampered
という名前のサブディレクトリに格納されます。
本ユーティリティにより、アセンブリの改ざんされたバージョンが作成されます。
その他の出力アセンブリを改ざんされたバージョンのディレクトリにコピーします。たとえば、次のようにします。
xcopy *.* tampered /d
改ざんされたアセンブリを実行し、改ざんチェックを入れた場所を用いて、アプリケーションがどのように改ざんに対応するかを観察します。
Xamarin.Android
アプリケーションに差し込まれた改ざんチェックが、どのように改ざんに対応するかをテストするには、以下の手順を実行します。
アーカイブの生成後、アプリケーションに署名する場合:
プロジェクトのプロパティで[次のキーストアの詳細を使用して .APK ファイルに署名します。]のチェックをオフにします。
Visual Studio でアプリケーション アーカイブを新規作成します。
新規作成したアーカイブを選択し、[配布...]を選択します。
優先する配布チャネルを選択します。
DotfuscatorAndroidSigningCertFingerprint
で指定されているものとは異なる SHA-1 指紋を含むキーを持つ新しいパッケージに署名します。通常どおり、アプリケーションを配置します。
新しいアーカイブに署名する場合、カスタム プロパティで新しい署名キーを作成することもできますが、
debug.keystore
ファイルを使用できます。プロジェクトのプロパティでアプリケーションに証明する場合:
Visual Studio でプロジェクトのプロパティを開きます。
[Android プロジェクト プロパティ]タブを開きます。
[次のキーストアの詳細を使用して .APK ファイルに署名します。]の隣にあるボックスのチェックをオフにします。
通常どおり、アプリケーションをビルドして配置します。
これにより、配置されるアプリケーションは
debug.keystore
ファイルを使用して署名されるようになります。これは基本的に、改ざんされたり、再パッケージ化されていたりするアプリケーションをシミュレートします。