このセクションでは、Dotfuscator のスタンドアロン GUI を使用して、あなたの最初のアセンブリをすばやく簡単に難読化する方法について説明します。
Dotfuscator の Visual Studio 統合を使って作業を開始したい場合は、こちらをご覧ください。
アプリケーションを難読化して保護するために、名前の変更、制御フロー、不要コードの除去、および文字列の暗号化などの、基本的でありながら強力な機能を使用するプロジェクトを構成する方法を学習します。ここで使用する設定は、ほとんどのユースケースにおいて保護を提供するのに適しています。
Dotfuscator のユーザー インターフェイスに関する完全なガイドは、『Dotfuscator ユーザーズ ガイド』のグラフィカル ユーザー インターフェイス リファレンスを参照してください。
メモ:このページでは、Dotfuscator に付属している
GettingStarted.exe
サンプル アセンブリの難読化について説明しています。もちろん、独自のアセンブリで同じ手順に従うこともできます。
スタンドアロン GUI を開くには、スタート メニューまたはスタート画面を開き、Dotfuscator Professional Edition を選択します。
インストール場所から dotfuscatorUI.exe
を開くこともできます。
C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.x\samples\cs\GettingStarted\bin\Debug
GettingStarted.exe
を選択します。Dotfuscator.xml
と入力し、[保存]をクリックします。ご覧のとおり、構成ファイルの場所は入力ファイルの場所とは無関係です。この例では、別の場所を選択しました。なぜなら、ほとんどのユーザーは、管理者として実行しない限り、Dotfuscator のインストール ディレクトリへの書き込みアクセス許可を持っていないからです。
メモ:構成ファイルへのパスを
${configdir}
変数として、構成自体で使用できます。たとえば、アセンブリの既定の出力場所を${configdir}\Dotfuscated
とします。
これで、プロジェクトをビルドできるようになりました。プロジェクトは既に、ある程度の保護を既定により受けています。
このセクションの指示によって、保護層に新たな保護層が重ねられます。
このセクションの指示は、名前の変更の強度を高めます。
メモ:これらの[<機能>を無効にする]値を "いいえ" に設定すると、実際には機能がオンになります。
[名前の変更]タブをクリックして、[オプション]サブ タブをクリックします。[拡張オーバーロード誘導を使用する]をオンにします。この機能を有効にすると、Dotfuscator は、メソッドの戻り値の型またはフィールドの型を、メソッドまたはフィールドの一意性を判断するときの条件として使用できるようにすることによって、Overload-Induction™(オーバーロード誘導)を拡張します。
[文字列の暗号化]タブをクリックします。文字列の暗号化は選択されたものを対象とするため、入力アセンブリのすべてのメソッドを含めるためには、左ペインに表示されるアセンブリのチェック ボックス(ツリーのルートに表示)をオンにする必要があります。
既定では、Dotfuscator はそのアセンブリの外部からアクセスされる可能性のあるものについては、名前の変更も除去も行いません。しかし、あなたのアセンブリにアクセスするために他のアセンブリを必要としない場合や、ライブラリとライブラリを利用する側を同じ Dotfuscator プロジェクト内で一緒にアセンブルしている場合には、より強力な保護(特に、より広範な名前の変更)を得るために、ライブラリ モードをオフにすることになるでしょう。
${configdir}\Dotfuscated
が入力されています。これはつまり、難読化されたアセンブリは、ステップ 1 で作成されたディレクトリ(構成ファイルが保存されているディレクトリ)の Dotfuscated
という名前のサブディレクトリに置かれるということです。ビルドが完了したら、すぐに難読化されたアセンブリをテストしたり使用したりできます。
SaySomething
メソッドと set_Name
メソッドに加えて、Name
プロパティにも注目してください。Dotfuscator は、これらの項目がこのアプリケーションで使用されていないと判断しました。Dotfuscator の除去機能を使用して不要なコードを除去することで、アプリケーションのサイズをさらにコンパクトにすることができます。${configdir}\Dotfuscated\Map.html
です。これで、GUI を使って難読化を行うことができました。コマンド ライン インターフェイスで同じことが行えます。また、難読化された出力アセンブリを詳しく調べ、難読化の効果を理解することができます。
Dotfuscator ユーザー ガイド:
Dotfuscator バージョン 4.28.1.5015. Copyright © 2017 PreEmptive Solutions, LLC