一般的な攻撃手法は、バイナリ内部の文字列参照を検索して、重要なコード セクションを見つけることです。
例:
文字列の暗号化は、アプリケーション内の文字列をスクランブルすることによって、これら両方の攻撃を減らせる可能性があります。アタッカーが検索しても文字列が見つからなくなるためです。
例
処理前:
処理後:
const
文字列は暗号化されませんが、それらを使用するすべての場所は、文字列を暗号化したもので更新されます。これを回避するには、除去を有効にし、[除去]エディターの[オプション]タブで、[除去の種類]を[リテラルのみ削除(const 定義)]に設定します。
いくつかの計算集約型(高度な繰り返しコード)が文字列を生成している(おそらく、ログ記録の目的のため)場合は、それらの文字列を復号するために余分なメソッド呼び出しを実行する必要があるため、パフォーマンスが低下するかもしれません。
名前の変更や制御フローは、具体的に項目が対象から除外されない限り、できるだけ多くのコードを変換しますが、文字列の暗号化は、既定では文字列を一切暗号化しません。アセンブリ内のすべての文字列の暗号化を有効にするには、単に[文字列の暗号化]エディターの[対象]タブを開き、アセンブリ ノードのチェック ボックスをオンにするだけです(再帰的に、すべてのサブ項目もオンになります)。
Dotfuscator ユーザーズ ガイド:
Dotfuscator バージョン 4.28.1.5015. Copyright © 2017 PreEmptive Solutions, LLC