次の方法で共有


Dotfuscator Community & Visual Studio について

PreEmptive Protection - Dotfuscator は、セキュリティで保護されたソフトウェア開発ライフサイクルに簡単に適合する包括的な .NET アプリケーション保護を提供します。 これを使用して、デスクトップ、モバイル、サーバー、および埋め込みアプリケーションを強化、保護、排除し、企業秘密やその他の知的財産 (IP) をセキュリティで保護し、著作権侵害と偽造を減らし、改ざんや承認されていないデバッグから保護します。 Dotfuscator は、より多くのプログラミングやソース コードへのアクセスを必要とせずに、コンパイル済みアセンブリで動作します。

PreEmptive Protection - Dotfuscator

保護が重要な理由

知的財産 (IP) を 保護することが重要です。 アプリケーションのコードには、IP と見なすことができる設計と実装の詳細が含まれています。 ただし、.NET Framework 上に構築されたアプリケーションには、重要なメタデータと高レベルの中間コードが含まれているため、多くの無料の自動化されたツールのいずれかを使用するだけで、リバース エンジニアリングが容易になります。 リバース エンジニアリングを中断および停止することで、未承認の IP 開示を防ぎ、コードに企業秘密が含まれていることを示すことができます。 Dotfuscator は、元のアプリケーションの動作を維持しながら、.NET アセンブリを難読化して、リバース エンジニアリングを防止できます。

アプリケーションの整合性を保護することも重要です。 リバース エンジニアリングに加えて、不適切なアクターは、アプリケーションの海賊版、実行時のアプリケーションの動作の変更、またはデータの操作を試みる可能性があります。 Dotfuscator は、改ざん、サード パーティによるデバッグ、ルート化されたデバイスなど、認可されていない使用を検出して対応する機能をアプリケーションに組み込むことができます。

Dotfuscator がセキュリティで保護されたソフトウェア開発ライフサイクルにどのように適合するかの詳細については、「PreEmptive Solutions の SDL App Protection」ページを参照してください。

Dotfuscator コミュニティについて

Microsoft Visual Studio のコピーには、PreEmptive Protection - Dotfuscator Communityのコピーが含まれています。個人使用は無料です。 (この無料版は、以前は Dotfuscator Community Edition または Dotfuscator CE として知られていました。

Visual Studio に含まれる Dotfuscator Community のバージョンをインストールする方法については、「インストール」ページを参照してください。

Dotfuscator Community は、開発者、アーキテクト、テスト担当者向けに、さまざまな ソフトウェア保護と強化 サービスを提供します。 Dotfuscator Community に含まれる .NET 難読化 とその他の Application Protection 機能の例を次に示します。

アプリケーション保護戦略にどのように適合するかなど、これらの機能の詳細については、「機能」ページを参照してください。

Dotfuscator Community では、すぐに使える基本的な保護が提供されます。 Dotfuscator Community の登録済みユーザーと、世界でもトップレベルの .NET Obfuscator である PreEmptive Protection - Dotfuscator Professional のユーザーは、さらに多くのアプリケーション保護対策を利用できます。 Dotfuscator の拡張については、「アップグレード」ページを参照してください。

作業の開始

Visual Studio から Dotfuscator Community の使用を開始するには、検索ボックスdotfuscator を入力します (Ctrl + Q)。

  • Dotfuscator Community が既にインストールされている場合、検索ボックス には、[メニュー] 見出しの下に Dotfuscator Community を起動するオプションが表示されます。 詳細については、「Dotfuscator Community User Guide 」の「概要」ページ参照してください。
  • Dotfuscator Community がまだインストールされていない場合は、代わりに [検索ボックス][個別のコンポーネント] の見出しに [PreEmptive Protection - Dotfuscator のインストール] が表示されます。 詳細については、「インストール」ページ を参照してください。

最新バージョンの Dotfuscator Community を preemptive.com の Dotfuscator ダウンロード ページから入手することもできます。

Dotfuscator Community 5 からのアップグレード

PreEmptive Protection - Dotfuscator Community 6 にアップグレードする方法について説明します。

Visual Studio のインストール履歴とバージョンによっては、現在、以前のメジャー バージョンである Dotfuscator Community 5 を実行している可能性があります。 その場合は、最新の保護対策がコードに与えられていることを確認することが重要であるため、アップグレードする必要があります。 アップグレードは無料でご利用いただけます。

この記事では、現在使用しているバージョン、必要に応じてバージョン 6 にアップグレードする方法、および 2 つのバージョン間で置換または削除された機能を確認する方法について説明します。

Dotfuscator のバージョンを確認する

実行している Dotfuscator のバージョンがわからない場合は、次のいずれかのオプションを実行してバージョンを確認できます。

  • Visual Studio の [ツール] メニューに移動し、[PreEmptive Protection - Dotfuscator Community ]選択して、Dotfuscator Community グラフィカル ユーザー インターフェイス (GUI) を起動します。

    Dotfuscator GUI から、ヘルプ メニューを開き、[バージョン情報...] を選択して、[バージョン情報] 画面を表示します。

    この画面には、Dotfuscator のバージョンが一覧表示されます。

  • dotfuscator が コマンドライン インターフェイスを使用してビルドに統合されている場合は、ビルド ログで次の例のような行を確認することもできます。

    Dotfuscator Community Version 5.42.0.9514-e0e25f754
    

    このテキストを表示するには、ビルドの詳細さを上げることが必要な場合があります。 Visual Studio については、詳細度の設定に関するセクションを参照してください。

最初のドットが .する前のバージョンの最初の整数は、Dotfuscator のメジャー バージョンを示します。 最初の整数が 5の場合は、最新の Dotfuscator 6 機能と保護更新プログラムを利用できるように、このページでアップグレード手順を実行する必要があります。

アップグレード手順

このセクションには、Dotfuscator Community の一般的な使用方法をバージョン 5 からバージョン 6 にアップグレードする手順のセットが含まれています。

Dotfuscator 6 のインストール

Dotfuscator Community は、Visual Studio の拡張機能として配布されます。 Dotfuscator 6 をインストールする手順は、使用している Visual Studio のバージョンによって異なります。

  • Visual Studio 2022 Dotfuscator Community 6 は、Visual Studio 2022 に含まれています。

  • Visual Studio 2019 Dotfuscator Community 6 は、Visual Studio 2019 の新しいバージョン (バージョン 16.10.0 以降) に含まれています。 Visual Studio 2019 最新バージョンに更新します。 Visual Studio を更新すると、Dotfuscator Community 5 のインストールが自動的に Dotfuscator Community 6 にアップグレードされます。

    • Dotfuscator がまだインストールされていない場合は、まず Visual Studio を更新してから、「インストール 」を参照してください。

    • Visual Studio のリリースに加えて、Dotfuscator のダウンロード ページ から常に最新バージョンの Dotfuscator Community を入手できます。

  • Visual Studio 2017 このバージョンの Visual Studio は、Dotfuscator Community 5 にのみ付属しています。 ただし、Dotfuscator Community 6 をインストールまたはアップグレードするには、Dotfuscator のダウンロード ページに移動し、適切なダウンロード リンクを選択します。

    ダウンロードした .vsix ファイルを実行し、指示に従って Dotfuscator Community 6 を Visual Studio にインストールします。 既存の Dotfuscator Community 5 のインストールもアップグレードされます。

  • 以前のバージョンの Visual Studio Dotfuscator Community 6 は、これらのバージョンの Visual Studio ではサポートされていません。 新しいバージョンの Visual Studio にアップグレードするか、Dotfuscator Community から Dotfuscator Professional にアップグレードすることをお勧めします。

以前に Dotfuscator Community 5 を登録していた場合は、Dotfuscator Community 6 を初めて実行するときに、その登録が自動的に変換されます。

CLI へのパスを更新する

アプリを保護するために Dotfuscator 5 の コマンドライン インターフェイス (CLI) を使用していた場合は、すべてのプロジェクトで CLI へのパスを更新し、それを参照するスクリプトをビルドする必要があります。

Dotfuscator の CLI へのパスが無効になった理由は、Dotfuscator Community でインストールされている一部の実行可能ファイルの名前が Dotfuscator 6 で変更されたためです。 この変更により、これらの実行可能ファイル名は Dotfuscator Community と Dotfuscator Professional 全体で同じになります。

実行可能ファイル Dotfuscator 5 Dotfuscator 6
GUI dotfuscator.exe dotfuscatorUI.exe
CLI dotfuscatorCLI.exe dotfuscator.exe

手記

Dotfuscator CLI が Visual Studio のインストール ディレクトリにインストールされているため、Visual Studio のメジャー バージョン間でアップグレードしたり、Visual Studio のエディションを切り替えたりすると、CLI パスが無効になる場合もあります。 次に示す症状と解決策も、このシナリオに適用されます。

ビルドで無効な Dotfuscator CLI パスを使用している場合は、次のいずれかの例のようなエラーが発生する可能性があります。

'"[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe"' is not recognized as an internal or external command, operable program or batch file.

The command ""[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe" Dotfuscator.xml" exited with code 9009.

正しい CLI パスを使用するようにビルドを更新するには:

  1. Visual Studio の [ツール] メニューに移動し、[PreEmptive Protection - Dotfuscator Community ]選択して、Dotfuscator Community GUI を起動します。

  2. Dotfuscator Community GUI で、Tools メニューに移動し、Dotfuscator コマンド プロンプト 選択します。

  3. 開いたコマンド プロンプトで、「where dotfuscator.exe」と入力します。 後で参照できるように、プレーンテキスト ドキュメントに表示される最初のパスをコピーします。 このパスは、Dotfuscator Community 6 の CLI への新しいパスです。

  4. ビルド システムに応じて、プロジェクトまたはビルド構成を開きます。

    • Visual Studio プロジェクトの場合は、プレーン テキストとしてプロジェクト ファイル (.csproj.vbproj、または .fsproj) を開きます。 Visual Studio でプロジェクト ファイル を開きます。
  5. Dotfuscator Community 5 の CLI への古いパスが使用されているプロジェクトまたはビルド構成内の任意の場所を見つけます。 これは通常、dotfuscatorCLI.exeで終わるパスです。

  6. 手順 5 の古いパスを、手順 3 で示した新しいパスに置き換えます。

    古いパスのいずれかが絶対パスでない場合は、コンテキストに基づいて新しいパスを適切に調整する必要があります。 次の例では、VSInstallDir 環境変数が古いパスで使用されているため、対応する新しいパスでも同じようにする必要があります。

    • 手順 3 の新しい経路: C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
    • プロジェクト ファイルの古いパス: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
    • プロジェクト ファイルの新しいパス: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
  7. Git などのソース管理システムを使用している場合は、手順 6 の変更がそのシステムに反映されていることを確認します。 これらの変更を、システムと組織に適した場合にチームの残りの部分に配布します。

警告

dotfuscator.exe は Dotfuscator 5 のグラフィカル ユーザー インターフェイス (GUI) を参照し、Dotfuscator 6 ではコマンド ライン インターフェイス (CLI) を参照するため、複数のマシン間で共有されるビルド スクリプトを更新するときは注意が必要です。

Dotfuscator 6 用に更新されたスクリプトを実行する Dotfuscator 5 がインストールされているマシンでは、目的のコマンド ライン インターフェイスではなく、グラフィカル ユーザー インターフェイスが起動されます。 Dotfuscator の保護が適用されていないにもかかわらず、ビルドが成功する可能性があります。つまり、出力パッケージは保護されません。

それ以外の場合は、代わりにビルドエラーが発生する可能性があります。

これらのシナリオを回避するには、すべてのマシンで Dotfuscator Community をバージョン 5 からバージョン 6 にアップグレードし、スクリプトを同時にビルドします。

Dotfuscator 構成ファイルをアップグレードする

Dotfuscator 6 より前に作成されたすべての Dotfuscator 構成ファイル (Dotfuscator.xmlなど) をアップグレードする必要があります。

Dotfuscator CLI を古い構成ファイルで実行しようとすると、次の例のようなエラーが発生します。

Dotfuscator Engine Initialization error: PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. Please open your Dotfuscator config in the Config Editor which automatically upgrades it.

重要

このエラーが発生し、前述の機能を使用していない場合でも、構成ファイルをアップグレードする必要があります。

構成ファイルをアップグレードするには:

  1. Visual Studio の [ツール] メニューに移動し、[PreEmptive Protection - Dotfuscator Community ]選択して、Dotfuscator Community グラフィカル ユーザー インターフェイス (GUI) を起動します。

  2. 対象の Dotfuscator 構成ファイルを開きます (Ctrl + O)。

  3. ビルド出力 タブに次のメッセージが表示されます。

    PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. The associated settings have been removed. Please save your upgraded Dotfuscator config.

  4. 更新された Dotfuscator 構成ファイル (Ctrl + S) を保存します。

  5. Git などのソース管理システムを使用している場合は、Dotfuscator 構成ファイルへの変更がそのシステムに反映されていることを確認します。 これらの変更を、システムと組織に適した場合にチームの残りの部分に配布します。

属性ライブラリへの参照を更新する

Dotfuscator を使用すると、ソース コードで .NET 属性を使用して特定の機能を構成できます。 プロジェクトでこのような属性を使用していた場合は、Dotfuscator 6 での変更に対処するために、それらを更新する必要がある場合があります。

難読化属性

難読化属性のに変更はありません。 これらの属性は .NET 基本クラス ライブラリで定義されており、Dotfuscator Community 6 では引き続きそれらを受け入れています。

属性の確認

Check Attributes を含むライブラリが変更されました。 Dotfuscator Community 5 では、Dotfuscator 自体と共にファイルとして配布されました。 Dotfuscator Community 6 以降では、代わりにパブリック NuGet パッケージとして配布されます。

古い場所を引き続き参照する Visual Studio プロジェクトをビルドしようとすると、次の例のようなエラーが発生する可能性があります。

The type or namespace name 'PreEmptive' could not be found (are you missing a using directive or an assembly reference?)

The type or namespace name 'TamperCheckAttribute' could not be found (are you missing a using directive or an assembly reference?)

次の警告が表示される場合もあります。

Could not resolve this reference. Could not locate the assembly "PreEmptive.Attributes". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

新しい場所を使用するようにプロジェクトを更新するには:

  1. PreEmptive.Attributes.dllへのプロジェクトのアセンブリ参照を削除します。

  2. NuGet パッケージ参照 PreEmptive.Protection.Checks.Attributes をプロジェクトに追加します。 パッケージは、既定の NuGet フィード nuget.orgで使用できます。

各 Check 属性の ExtendedKey パラメーターも削除されています。 これらのパラメーターは Dotfuscator Community 5 では無視されましたが、ソース コードで使用されている場合は、プロジェクトをコンパイルするためにこれらの使用法を削除してください。

インストルメンテーション属性

インストルメンテーション属性は、Dotfuscator 5 で PreEmptive Analytics 機能を構成するために使用されました。 ただし、PreEmptive Analytics は Dotfuscator 6 で削除されました。PreEmptive Analytics 削除された機能のサブセクションを参照してください。 その結果、インストルメンテーション属性も削除されました。

インストルメンテーション属性を使用する Visual Studio プロジェクトをビルドしようとすると、「属性のチェック」で示されているのと同じ種類のエラーと警告が表示されることがありますが、属性名は異なります (たとえば、TamperCheckAttributeではなく FeatureAttribute)。

インストルメンテーション属性の使用法を含む既にビルドされているアセンブリで Dotfuscator を実行しようとすると、次の例のようなエラーが発生します。

The PreEmptive.Attributes.FeatureAttribute attribute (annotating SomeNamespace.SomeType::SomeMethod) is not recognized by this version of Dotfuscator.

これらの問題を解決するには、ソース コードからインストルメンテーション属性のすべての使用法を削除します。 また、属性を定義したライブラリへのアセンブリ参照を削除する必要 PreEmptive.Attributes.dll。 (このライブラリで定義されている Check 属性を使用していた場合、これらは移動しました。上記の Check 属性 を参照してください。)

削除された機能

Dotfuscator Community 6 では、Dotfuscator Community 5 の破壊的変更が導入されています。 Dotfuscator Community 5 を使用している場合、このセクションでは、ビルドの変更が必要な、または Dotfuscator の出力に影響を与える可能性がある変更に対処する方法について説明します。

変更の完全な一覧は、変更ログで入手できます。

PreEmptive Analytics

Dotfuscator 6 では、テレメトリの確認を含む PreEmptive Analytics はサポートされていません。 ただし、チェック 自体 (アプリケーション通知チェック アクションを含む) は引き続きサポートされています。

Dotfuscator 6 を使用するには、構成ファイルをアップグレードして PreEmptive Analytics の設定を削除します。

コード内の属性を使用して PreEmptive Analytics を構成していた場合、Dotfuscator 6 でそれらのアセンブリを保護するには、先にソース コードからそれらを削除して、入力アセンブリをリビルドします。

Check Telemetry を使用して Check が無効な状態 (例えば 改ざんが検出されたとき) をレポートしている場合は、インシデントを Azure Application Insights または選択した他のサービスに報告するカスタムアプリケーション通知 に置き換えることができます。

サポートされていないアプリケーションの種類

次のアプリケーションの種類は、Dotfuscator 6 ではサポートされなくなりました。

  • Windows Phone
  • WinRT (Windows 8 アプリ)
  • Silverlight
  • Unity (ゲーム エンジン)
  • ユニバーサル Windows プラットフォーム (UWP)

他の種類の UWP アプリを保護するには、Dotfuscator Professional にアップグレードし、アプリの保護ガイドライン に従います。

サポートされていない入力

Dotfuscator Community では、ユニバーサル Windows プラットフォーム (UWP) の .appx パッケージは入力としてサポートされなくなりました。 UWP アプリを保護するには、Dotfuscator Professional にアップグレードして、「アプリを保護する」の手順に従います。

さらに、Silverlight がサポートされなくなったため、.xap パッケージを入力として使用できなくなります。

明示的なメソッドのオーバーライドを導入する

明示的なメソッドオーバーライドを導入するための名前変更オプションが Dotfuscator から削除されました。 Dotfuscator 6 を使用するには、構成ファイルをアップグレードして、この設定を削除します。

完全なドキュメント

詳細な使用方法については、Dotfuscator Community のユーザー インターフェイス の使用を開始する方法など、preemptive.com 完全な Dotfuscator Community ユーザー ガイドを参照してください。