このセクションでは、Visual Studio の中から Dotfuscator を使用して、あなたの最初のアセンブリをすばやく簡単に難読化する方法について説明します。
Visual Studio ソリューションのビルドの一部として難読化を含める方法を示します。Dotfuscator プロジェクトは、他の 1 つ以上の Visual Studio プロジェクト(C#、VB.NET プロジェクトなど)からの入力ファイルを受け入れることもできますが、ファイル システムから直接アセンブリを指定することもできます。
アプリケーションを難読化して保護するために、名前の変更、制御フロー、不要コードの除去、および文字列の暗号化などの、基本的でありながら強力な機能を使用するプロジェクトを構成する方法を学習します。ここで使用する設定は、ほとんどのユースケースにおいて保護を提供するのに適しています。
Dotfuscator の Visual Studio 統合に関する完全なガイドについては、『Dotfuscator ユーザーズ ガイド』の「Visual Studio 統合 UI の使用」を参照してください。
メモ:このページでは、Dotfuscator に付属している
GettingStarted.exe
サンプル アセンブリの難読化について説明しています。もちろん、独自のアセンブリで同じ手順に従うこともできます。
C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.x\samples\cs\GettingStarted\GettingStarted.sln
GettingStarted プロジェクトがソリューション エクスプローラーに表示されます。これは C# プロジェクトなので、これを使って GettingStarted 実行可能ファイルをビルドすることができます。
GetObfuscated
と名前を付けて、[OK]をクリックします。GetObfuscated
という名前の新しい Dotfuscator プロジェクトがソリューション エクスプローラーに表示されます。Dotfuscator プロジェクトを構成するための開始点としてソリューション エクスプローラーを使用します。
入力ファイルを指定する場合は、GettingStarted プロジェクトから出力を使用することを Dotfuscator に知らせます。
ソリューション エクスプローラー内の Dotfuscator プロジェクトの入力ノードの下に、GettingStarted の GettingStarted.exe(アクティブ) が表示されます。
これで、プロジェクトをビルドできるようになりました。プロジェクトは既に、ある程度の保護を既定により受けています。
このセクションの指示によって、保護層に新たな保護層が重ねられます。
このセクションの指示は、名前の変更の強度を高めます。
メモ:これらの[<機能>を無効にする]値を "いいえ" に設定すると、実際には機能がオンになります。
ここには、構成可能な難読化の設定ごとに 1 つのノードがあります。機能が無効になっている場合は、対応するノードが灰色で表示されます。機能の有効/無効を切り替えるには、ノードを右クリックして、[無効化]メニュー項目のチェックをオンまたはオフにします。あるいは、上で説明したように、[グローバル オプション]プロパティ ページを使用して設定できます。
既定では、Dotfuscator はそのアセンブリの外部からアクセスされる可能性のあるものについては、名前の変更も除去も行いません。しかし、あなたのアセンブリにアクセスするために他のアセンブリを必要としない場合や、ライブラリとライブラリを利用する側を同じ Dotfuscator プロジェクト内で一緒にアセンブルしている場合には、より強力な保護(特に、より広範な名前の変更)を得るために、ライブラリ モードをオフにすることになるでしょう。
${configdir}\Dotfuscated
が入力されています。必要であれば、この場所を編集することもできます。[OK]をクリックします。メモ:
${configdir}
は Dotfuscator の構成ファイルへのパスが格納された変数です。サンプルを既定の場所にインストールした場合、このパスは次のようになります。C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.x\samples\cs\GetObfuscated\Debug
最初に C# プロジェクトをビルドし、その後 Dotfuscator プロジェクトをビルドします。Visual Studio の出力ウィンドウに Dotfuscator の出力が表示されます。
ビルドが完了したら、すぐに難読化されたアセンブリをテストしたり使用したりできます。
青い菱形のアイコンは、名前が変更されたメソッドとフィールドを示しています。これらの各アイコンの上位には、元の名前が表示されています。すべてのメソッドとフィールドの名前が変更され、各メソッドの目的を判読するのがほぼ不可能になっていることを確認してください。これにより、コードのリバース エンジニアリング処理への対処として大きな効果を上げることができます。
現在強調表示されている SaySomething
メソッドと set_Name
メソッドに加えて、Name
プロパティにも注目してください。Dotfuscator は、これらの項目がこのアプリケーションで使用されていないと判断しました。Dotfuscator の除去機能によって不要なコードを除去することで、アプリケーションのサイズをさらにコンパクトにすることができます。
ソリューション エクスプローラーで GetObfuscated を右クリックして[プロパティ]を選択することにより、プロパティ ページを開きます。
${configdir}\Dotfuscated\Map.html
です。${configdir}\Dotfuscated\removal.xml
を指定します。removal.xml
ファイルと同じディレクトリに出力されます。このメニュー下にある 2 つのメニュー項目は、表示可能な HTML 形式の名前の変更レポートと除去レポートがあれば有効になります。それらをクリックすると、対応するレポートが既定のブラウザーに表示されます。
これで、Dotfuscator の Visual Studio 統合を使って難読化を行うことができました。コマンド ライン インターフェイスで同じことが行えます。また、難読化された出力アセンブリを詳しく調べ、難読化の効果を理解することができます。
Dotfuscator ユーザー ガイド:
Dotfuscator バージョン 4.28.1.5015. Copyright © 2017 PreEmptive Solutions, LLC