ConfuserExで.NETアプリケーションを難読化するでは
フリーでオープンソースの難読化ツールConfuserExを使用して
プログラムを難読化する手順を紹介しました。
ですがこのままだと、ビルドをするたびにConfuserExを起動して
モジュールと難読化の設定をして、難読化を実行して…と
さほど手間のかかる作業ではありませんが、同じことを何度も
繰り返すことになるので、なるべく楽をしたいところです。
そこでこの記事では、.NETアプリケーションをビルド時に
自動的にConfuserExを使用して難読化されるようにする
手順を紹介します。
ConfuserExのプロジェクトファイルを作成する
まずはConfuserExのプロジェクトファイルを作成します。
このファイルにはモジュールのパス、出力先フォルダ、難読化の設定
が記録されます。
ConfuserExに難読化するモジュールを読み込ませます。
ここでは、以前作成したサンプルプログラムを読み込ませています。
Output Directoryをソリューションファイル(sln)と同じフォルダに
変更しています。必須ではありませんが、こうしておくと
出力されたモジュールを拾うのに、bin配下まで潜る必要がなくなります。
難読化のルールを設定します。
手順は前回の記事を参照してください。
Save projectボタンを押して、プロジェクトファイルを作成します。
保存先はソリューションファイル(sln)と同じフォルダにしています。
これも必須ではありませんが、あとでフォルダの指定が楽になります。
これでConfuserExのプロジェクトファイルの作成が完了しました。
ビルド後イベントを設定する
ここからはVisual Studioでの作業になります。
難読化するモジュールを作成するプロジェクトを開きます。
メニューのプロジェクトからプロジェクトのプロパティを開き
左側のメニューのビルドイベントを選択します。
ビルド後イベントのコマンドラインの欄に
ConfuserExでモジュールを難読化するコマンドを入力します。
コマンドの例
コマンドは以下のようになります。
1 |
(ConfuserExのフォルダ)\Confuser.CLI.exe -n (ConfuserExのプロジェクトファイルのパス) |
この記事で使用しているサンプルプログラムの場合は以下になります。
1 |
D:\ConfuserEx_bin\Confuser.CLI.exe -n $(SolutionDir)TestApp.crproj |
コマンドの詳細
コマンドを詳しく見ていきます。
Confuser.CLI.exeはその名の通り、ConfuserExをコマンドラインで
使うためのアプリケーションです。
-nは難読化が完了後にポーズをしないようにするオプションです。
$(SolutionDir)はソリューションのフォルダを示すマクロです。
ConfuserExのプロジェクトファイルをソリューションファイルと
同じフォルダに保存したのはこのためです。
コマンドを入力する
ビルド後イベントのコマンドラインの欄に
ConfuserExでモジュールを難読化するコマンドを入力しました。
ビルドが失敗したときに難読化しようとしても仕方がないので
ビルド後イベントの実行はビルドが成功したときに設定します。
ビルドしてみる
これでプロジェクトをビルド時に自動的に難読化が行われるはずです。
メニューのビルドからプロジェクトのリビルドをしてみます。
出力ウィンドウを見ると、モジュールの出力後
ConfuserExが起動して難読化が行われていることが分かります。
以上、.NETアプリケーションをビルド時に
自動的に難読化されるようにする手順を紹介しました。