ENGLISH

Dotfuscatorチュートリアル – .NET6アプリケーションの難読化について

現在(2023年3月30日時点)の.NET開発環境において、LTSの最新バージョンは、.NET 6.0です。高速なパフォーマンスやシンプルな構成はもちろんのこと、Web開発やクラウドネイティブアプリケーションの開発にも最適化された豊富な機能が提供されています。

Dotfuscatorは、アップデートによって.NET6に対応するようになりました。.NET6を使用する開発者は、Dotfuscatorを使用することで、より高度なセキュリティを実現することができます。

今回は、Dotfuscatorを.NET6プロジェクトに統合するための、DotfuscatorのMSBuildターゲットの使用方法を紹介します。

MSBuildターゲットを使用することは、当製品の開発元であるPreEmptive社から推奨されており、ソリューション内のすべてのプロジェクトに含まれるアセンブリが、Releaseビルドにおいて自動的に保護されるようになります。

1.プロジェクトファイルの編集

Dotfuscatorを.NET6プロジェクトに統合するためには、プロジェクトファイル(.csproj、.vbprojなど)を編集する必要があります。まず、プロジェクトファイルを編集できるように、プロジェクトをアンロードします。

「プロジェクトファイルの編集」をクリックすると、以下のようなXML文書(csprojファイル)が表示されます。

修正前

続いて、以下の通りにXML文書(csprojファイル)を編集します。

  1. ① プロジェクトのルートにある<Project>タグからSdk属性を削除します。
  2. ② <Project>タグの元の値と一致するようにSdk属性を更新しつつ、<PropertyGroup>タグの前に以下の<Import>タグを追加します。

修正後(前半部分)

  1. ③ </PropertyGroup>タグのあとに、SDKのターゲットをインポートする<Import>タグを追加します。また、<Project>タグの元の値と一致するようにSdk属性を更新します。
  2. ④ 以下の新しい要素をすべて追加します。

修正後(後半部分)

※DotfuscatorMSBuildDirタグについては、DotfuscatorのMSBuildコンポーネントのパスを指定します。NuGetパッケージを使用する場合は、以下のディレクトリにMSBuildコンポーネントがダウンロードされますので、パスを更新してください。

XML文書(csprojファイル)は以下のように変更されました。

修正後(全体)


     

  
    net6.0 
    enable
    enable
  

  

  
    $(MSBuildProgramFiles32)/MSBuild/PreEmptive/Dotfuscator/6
    true
    true
  



プロジェクトを再度読み込みします。正しく変更がされていない場合は、以下のように読み込みに失敗することがあります。エラー内容を確認し、必要に応じて対処しましょう。エラーが解消されれば、読み込み失敗メッセージは消えます。

これでDotfuscatorの統合は完了しました。

2.ソリューションのビルド

続いて、実際に統合がされているか確認するために、ソリューションをビルドします。まずはDebugモードでビルドを行い、通常通りビルドが成功することを確認します。

リビルドを開始しました...
1>------ すべてのリビルド開始: プロジェクト:mvctest, 構成: Debug Any CPU ------
C:¥Users¥xxx¥mvctest¥mvctestvmvctest.csproj を復元しました (157 ms)。
1>mvctest -> C:¥Users¥xxx¥mvctest¥mvctest¥bin¥Debug¥net6.0¥mvctest.dll
========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

続いて、Releaseモードでもビルドを行います。

リビルドを開始しました...
1>------ すべてのリビルド開始: プロジェクト:mvctest, 構成: Release Any CPU ------
C:¥Users¥xxxvsource¥repos¥mvctest¥mvctest¥mvctest.csproj を復元しました (2 ms)。
1>プロジェクト参照を基に、新しい Dotfuscator 構成ファイルを生成しています...
1>mvctest.csproj : warning : Dotfuscator 構成ファイルが存在しなかったため、新しい構成ファイルが生成されました: 'C:¥Users¥xxx¥source¥repos¥mvctest¥mvctest¥DotfuscatorConfig.xml'。
1>構成ファイル 'C:¥Users¥xxx¥source¥repos¥mvctestvmvctest¥DotfuscatorConfig.xml' を使用して Dotfuscator を実行しています..."
1>Dotfuscator の実行を完了しました。
1>mvctest -> C:¥Users¥xxx¥source¥repos¥mvctest¥mvctest¥bin¥Release¥net6.0¥mvctest.dll
1>プロジェクト "mvctest.csproj" のビルドが終了しました。
========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

Releaseモードでビルドすると、Dotfuscatorが実行されていることが分かります。また、最初のビルドの一環として、既定の保護設定を使用した構成ファイル「DotfuscatorConfig.xml」が生成されます。このファイルを使用することで、次回以降も同じ保護設定で難読化を行うことができます。

初回以降は構成ファイルの生成は必要ないため、以下の項目をfalseに変更します。

false

3.Dotfuscator構成ファイルの編集

Dotfuscatorを起動し、ツールバー上の「開く」アイコンをクリックして、DotfuscatorConfig.xmlを読み込むことにより、保護設定を変更することができます。難読化の強度を上げたり、部分的な保護を除外したりするなどの設定変更が可能です。

Dotfuscatorは、最新の開発環境や言語に対応するために、アップデートを継続して提供しています。評価版のご利用を希望されるお客様は、以下のURLよりお申し込みください。
https://www.agtech.co.jp/preemptive/dotfuscator/trial/

一覧に戻る

Contactお問い合わせ

お気軽にお問い合わせください。

お問い合わせ

    必須会社名

    個人のお客様は「個人」と入力してください。

    必須お名前
    必須メールアドレス
    必須メールアドレス(確認)
    必須ライセンス ありなし
    ダウンロード目的