Dotfuscator クイック スタート ガイド

スタンドアロン Dotfuscator GUI を使ったクイック スタート

このセクションでは、Dotfuscator のスタンドアロン GUI を使用して、あなたの最初のアセンブリをすばやく簡単に難読化する方法について説明します。

Dotfuscator の Visual Studio 統合を使って作業を開始したい場合は、こちらをご覧ください。

アプリケーションを難読化して保護するために、名前の変更制御フロー不要コードの除去、および文字列の暗号化などの、基本的でありながら強力な機能を使用するプロジェクトを構成する方法を学習します。ここで使用する設定は、ほとんどのユースケースにおいて保護を提供するのに適しています。

Dotfuscator のユーザー インターフェイスに関する完全なガイドは、『Dotfuscator ユーザーズ ガイド』のグラフィカル ユーザー インターフェイス リファレンスを参照してください。

メモ:このページでは、Dotfuscator に付属している GettingStarted.exe サンプル アセンブリの難読化について説明しています。もちろん、独自のアセンブリで同じ手順に従うこともできます。

ステップ 1:アセンブリ用の Dotfuscator プロジェクトの作成

Dotfuscator を起動する

スタンドアロン GUI を開くには、スタート メニューまたはスタート画面を開き、Dotfuscator Professional Edition を選択します。

インストール場所から dotfuscatorUI.exe を開くこともできます。

難読化するアセンブリを選択する

  • 入力]タブで、ディレクトリを開くアイコンをクリックして新しい入力を追加します
  • 参照]をクリックして、入力アセンブリがある場所に移動します。
    C:\Program Files (x86)\PreEmptive Solutions\Dotfuscator Professional Edition 4.x\samples\cs\GettingStarted\bin\Debug
  • GettingStarted.exe を選択します。
  • 開く]をクリックし、次に[OK]をクリックします。
  • 実行可能ファイルへのパスが[入力ファイル]の下のリスト ボックスに表示されます。

プロジェクトを保存する

  • Windows エクスプローラーを使用して、よく知っている場所に、Dotfuscator の構成ファイルと出力ファイルを格納するためのディレクトリを作成します。
  • ファイル]メニューの[プロジェクトの保存]を選択して、プロジェクトを保存します。
  • 名前を付けてプロジェクトを保存]ダイアログ ボックスで、作成したディレクトリへ移動します。
  • ファイル名]フィールドに Dotfuscator.xml と入力し、[保存]をクリックします。

ご覧のとおり、構成ファイルの場所は入力ファイルの場所とは無関係です。この例では、別の場所を選択しました。なぜなら、ほとんどのユーザーは、管理者として実行しない限り、Dotfuscator のインストール ディレクトリへの書き込みアクセス許可を持っていないからです。

メモ:構成ファイルへのパスを ${configdir} 変数として、構成自体で使用できます。たとえば、アセンブリの既定の出力場所を ${configdir}\Dotfuscated とします。

ステップ 2:プロジェクトの構成

これで、プロジェクトをビルドできるようになりました。プロジェクトは既に、ある程度の保護を既定により受けています。

  1. 名前の変更ライブラリ モード
  2. 制御フロー

このセクションの指示によって、保護層に新たな保護層が重ねられます

  1. 文字列の暗号化
  2. 除去/不要コードの除去

このセクションの指示は、名前の変更の強度を高めます

  1. 拡張オーバーロード誘導を有効にする
  2. ライブラリ モードを無効にする

高レベルな機能をオンにする

  • 設定]タブをクリックし、[グローバル オプション]を選択します。
  • 機能]セクションで、次の値を "いいえ" に設定します。
    • 名前の変更を無効にする
    • 除去を無効にする

メモ:これらの[<機能>を無効にする]値を "いいえ" に設定すると、実際には機能がオンになります。

名前の変更を構成する

名前の変更]タブをクリックして、[オプション]サブ タブをクリックします。[拡張オーバーロード誘導を使用する]をオンにします。この機能を有効にすると、Dotfuscator は、メソッドの戻り値の型またはフィールドの型を、メソッドまたはフィールドの一意性を判断するときの条件として使用できるようにすることによって、Overload-Induction™(オーバーロード誘導)を拡張します。

文字列の暗号化を構成する

文字列の暗号化]タブをクリックします。文字列の暗号化選択されたものを対象とするため、入力アセンブリのすべてのメソッドを含めるためには、左ペインに表示されるアセンブリのチェック ボックス(ツリーのルートに表示)をオンにする必要があります。

ライブラリ モードをオフにする

既定では、Dotfuscator はそのアセンブリの外部からアクセスされる可能性のあるものについては、名前の変更も除去も行いません。しかし、あなたのアセンブリにアクセスするために他のアセンブリを必要としない場合や、ライブラリとライブラリを利用する側を同じ Dotfuscator プロジェクト内で一緒にアセンブルしている場合には、より強力な保護(特に、より広範な名前の変更)を得るために、ライブラリ モードをオフにすることになるでしょう。

  • 入力]タブを開きます。
  • アセンブリの下にあるオプションのツリーを展開します。
  • ライブラリ モードで実行する]のチェックをオフにします。

ステップ 3:プロジェクトのビルド

  • 設定]タブをクリックし、[ビルド設定]を選択します。[出力先ディレクトリ]には、既定値として ${configdir}\Dotfuscated が入力されています。これはつまり、難読化されたアセンブリは、ステップ 1 で作成されたディレクトリ(構成ファイルが保存されているディレクトリ)の Dotfuscated という名前のサブディレクトリに置かれるということです。
  • プロジェクトを難読化する準備ができました。ツール バーにある[プロジェクトをビルドします]ボタン(緑色の再生ボタン)をクリックします。Dotfuscator が難読化されたアプリケーションをビルドするまで、しばらく待ちます。

ビルドが完了したら、すぐに難読化されたアセンブリをテストしたり使用したりできます

任意:出力の参照

  • 出力]タブをクリックします。この画面では、Dotfuscator がコードを難読化した方法を示すツリーの中を移動することができます。
  • ルート ツリーと、すべてのサブ ツリーを展開します。青い菱形のアイコンは、名前が変更されたメソッドとフィールドを示しています。これらの各アイコンの上位には、元の名前が表示されています。すべてのメソッドとフィールドの名前が変更され、各メソッドの目的を判読するのがほぼ不可能になっていることを確認してください。これにより、コードのリバース&nbsp;エンジニアリング処理への対処として大きな効果を上げることができます。

  • 強調表示されている SaySomething メソッドと set_Name メソッドに加えて、Name プロパティにも注目してください。Dotfuscator は、これらの項目がこのアプリケーションで使用されていないと判断しました。Dotfuscator の除去機能を使用して不要なコードを除去することで、アプリケーションのサイズをさらにコンパクトにすることができます。
  • 自身の難読化されたアセンブリを見ながら、名前を変更されたものが十分でないように思われた場合は、ライブラリ モードをオフにしてもよいかどうかを検討してください(まだオフにしていない場合)。

任意:よく使われる便利な機能

  • 設定]タブをクリックし、[グローバル オプション]を選択します。
    • 一般]セクションで、[ビルドの進行状況]プロパティに[詳細な情報を表示する]を設定します。このように設定すると、Dotfuscator の実行中、進行状況に関する詳しい情報がダイアログ下部の[ビルド出力]タブに表示されます。
    • 高度]セクションで、[デバッグ シンボルの出力]に[JIT 最適化。PDB のシーケンス ポイント]を設定します。このプロパティを設定すると、各出力アセンブリに対して、シンボル ファイルが PDB 形式で作成されます。デバッガーにこれらのファイルを使用すると、デバッグ セッションに関する有益な情報を確認することができます。通常は、行番号、ソース ファイル名、ローカル変数名などの情報です。PDB ファイルは出力アセンブリと一緒に出力ディレクトリに置かれます。
  • 設定]タブで、[レポート]の下の[名前の変更]を選択します。[HTML として出力]チェック ボックスをオンにすると、アプリケーションの名前変更情報と統計情報を含む有益なレポートを入手できます。このレポートは、割り当てファイルと同じディレクトリに出力されます。既定の場所は ${configdir}\Dotfuscated\Map.html です。

詳細情報

これで、GUI を使って難読化を行うことができました。コマンド ライン インターフェイスで同じことが行えます。また、難読化された出力アセンブリを詳しく調べ、難読化の効果を理解することができます。

Dotfuscator ユーザー ガイド:

Dotfuscator バージョン 4.28.1.5015. Copyright © 2017 PreEmptive Solutions, LLC