ClickOnceバージョンをリリースする場合、 Dotfuscatorによってどのように難読化できますか?
9 に答える
Dotfuscatorの商用バージョンを使用して、Dotfuscatorプロジェクトへの入力としてデプロイメントマニフェスト( "foo.application")を追加することにより、ClickOnceアプリケーションを自動的に難読化できます。Dotfuscatorを使用すると、ClickOnceアプリケーションに含まれるアセンブリに必要な除外を追加し、難読化されたアセンブリを含む更新された配置マニフェストとアプリケーションマニフェストを作成できます。
Visual Studioに含まれている無料バージョンのDotfuscator(Visual Studio 2010を含む)には、ClickOnceアプリケーションを自動的に難読化する機能がありません。機能する難読化されたClickOnceアプリケーションを取得するには、難読化によってアセンブリの署名が変更されるため、ClickOnceマニフェストを再作成または更新する必要があります。
mage.exeまたはmageui.exe(Windows / .NET SDKに含まれています)を使用して、ClickOnceマニフェストを更新できます。mage.exeを使用する場合は、ClickOnceオプションで[.deployファイル拡張子を使用する]オプションが認識されないため、使用できないことに注意する必要があります。
ClickOnceアプリケーションの名前が「Foo」でバージョン1.0.0.0であるとすると、実行するプロセスは次のようになります。
- ClickOnceアプリケーションをディスク上のディレクトリに公開します
- Dotfuscator CEを実行し、プロジェクトのbinディレクトリから難読化するアセンブリを追加します
- アセンブリを難読化します。難読化されたアセンブリは、デフォルトで「Dotfuscated」という名前のサブディレクトリに配置されます。
- 難読化されたアセンブリをsn.exeで辞任します(最初に強い名前を付けた場合のみ)
- 難読化されたアセンブリをClickOncepublish\ Application Files\Foo_1_0_0_0ディレクトリにあるアセンブリの上にコピーします
アプリケーションマニフェストを更新して辞任します。
mage.exe -Update "Application Files \ Foo_1_0_0_0 \ Foo.exe.manifest" -CertFile "c:\ Foo \foo.pfx"-パスワードパスワード
デプロイメントマニフェストを更新して再署名します。
mage.exe -Update Foo.application -AppManifest "Application Files \ Foo_1_0_0_0 \ Foo.exe.manifest" -CertFile "c:\ Foo \foo.pfx"-パスワードパスワード
これで、難読化されたアセンブリを使用した有効なアプリケーションとデプロイメントマニフェストが作成されました。MageUI.exeツールを使用して同じタスクを実行することもできます(.deploy拡張子を使用してアセンブリを処理する方法を知っています)が、自動化はそれほど簡単ではありません。
Joe Kuemerleと同様のソリューションがありますが、公開プロセスの前です。これは、 VisualStudioおよびMSBuildコマンドラインでの公開で機能します。
BeforePublishターゲットをプロジェクトファイルに追加します。
<ItemGroup>
<ClickOnceFiles Include="bin\Release\ClickOnce.*"/>
</ItemGroup>
<Target Name="BeforePublish">
<Exec Command="{path to dotfuscator}\dotfuscator.exe Dotfuscator.xml" />
<Exec Command="mage.exe -u bin\Release\ClickOnce.exe.manifest" />
<Exec Command="mage.exe -u bin\Release\ClickOnce.application -AppManifest bin\Release\ClickOnce.exe.manifest" />
<Copy SourceFiles="@(ClickOnceFiles)" DestinationFolder="obj\Release" OverwriteReadOnlyFiles="True" />
</Target>
ClickOnceファイルは、、、ClickOnce.application
およびClickOnce.exe
ですClickOnce.exe.manifest
。私dotfuscator.xml
はプロジェクトファイルと同じフォルダにいます。キーは最後のコマンドです。ClickOnceファイルをobj
フォルダーにコピーします。
はい、これらは互換性のあるテクノロジーです。ClickOnceは、アプリケーションとそれに関連するバイナリのターゲットマシンへの展開に焦点を当てています。Dotfuscatorは、DLLファイルとEXEファイルを無効にします。アプリケーションを公開する前にDotfuscatorを実行している限り、これらは連携して機能します。
これがVisualStudioの新しいバージョンでのみ可能かどうかはわかりませんが、私にとっては完全に機能します。
- リリースモードで実行可能ファイルをビルドする
- 選択したexe-modificatorを起動し、obj / Release / <filename> .exeでファイルを変更します(注意:bin/ではなくobj/)
- Visual Studioの[今すぐ公開]ボタンを押します。これは、最後のビルドが最新であると想定しています。
- 利益:D
VS2010を使用している場合、付属のDotfuscatorはファイルを難読化してから、マニフェストに再署名します。[編集-フルバージョンを購入しない限り、これは当てはまりません。VS2008と同じように機能します。]
VS2008を使用している場合は、ファイルを公開してから難読化してから、MageまたはMageUIを使用してマニフェストに再署名する必要があります。
深海難読化ツールはclickonceで動作します
Eziriz .NET Reactorには、優れたClickOnce統合があります。
ClickOnceの扱い方に関するフォーラム投稿への回答から入手しました。
Microsoft onlingドキュメントを参照してください:ウォークスルー:ClickOnceアプリケーションの手動展開