難読化されたファイルをClickOnceで配布(備忘録)
Posted on :| コメント (2)
プログラムを書かない人にとってはまったく役に立たない記事ですが、自分のための備忘録として残しておきます。
Microsoftの新しい配布技術であるClickOnceは、
自由度がない分ユーザーにとってもメリットがあります(自動アップデートなど)。
Microsoftが想定している範疇であれば簡単なのですが、
例えばリバースエンジニアリング対策として難読化したファイルを配置しようとするととたんに難しくなります。
今回の記事は難読化されたファイルをClickOnceで配信する方法です。
■ビルド時に難読化する
ClickOnceは発行したときに、自動的に再ビルドされます。ということは、
発行する前に難読化してあるファイルはClickOnceでは無視されると言うことです。
難読化されたファイルをClickOnceで配信したいなら、まずビルド時に自動的に難読化されるようにしなければなりません。
参考:アプリケーションの難読化を自動化するには? (@IT)
自動化するには、MSBuildファイルをいじる必要があります。上記の記事が参考になります。吉田は難読化ツールに 「NanDoku」 というフリーソフトを利用しています。このソフトはVisual Studio2005に付属しているDotfuscator CEとは異なり、コマンドラインでも問題なく実行されるので、自動化するにはうってつけです。
<!-- 難読化 -->
<Target Name="AfterBuild" Condition="$(Obfuscate)==true">
<!-- 難読化の実行 -->
<Exec Command="C:\Tool\編集\NanDoKu\NanDoKu.exe /config=D:\Usr\WorkCopy\syndrome\Syndrome2\Release\Syndrome2難読.ini" />
<!-- 難読化済みファイルをコピー -->
<Copy SourceFiles="D:\Usr\WorkCopy\syndrome\Syndrome2\Release\$(TargetFileName)" DestinationFiles="$(ProjectDir)$(IntermediateOutputPath)$(TargetFileName)" />
</Target>
基本的にやっているのは@ITの記事と同じです。
■ClickOnceで配置
ClickOnceで配置するには、Visual Studio2005から通常通りの配置手順を踏み、 その後、アプリケーションマニュフェスト等を再編集してあげます。 再編集しないとハッシュの不一致でClickOnceインストーラがエラーを吐きます。
(1)配布するアプリケーションファイルを設定する
-
通常のIDEによる配置方法と同じです
(2)IDEから「今すぐ発行する」
-
後々の編集箇所を最小限にするために、必須コンポーネントや更新オプションはしっかり編集
(3)配置したファイルをすべてローカルにダウンロード
-
FTPなどを使い、配置したファイルを一度ローカルにコピー
-
マニュフェストだけでなく.deployファイルも含めてすべてダウンロード
(4)MageUIを使って、アプリケーションマニュフェストを再編集
-
Visual StudioツールにあるMageを起動
-
(3)でダウンロードしたアプリケーションマニュフェスト(.manifest)ファイルを読み込む
-
Filesメニュを開き、Populateで再度ファイルを読み込み直す
-
マニュフェストを保存
(5)MageUIを使って、でデプロイメントマニュフェストを再編集
-
(3)でダウンロードしたデプロイメントマニュフェスト(.application)ファイルを読み込む
-
Application Referenceメニュを開き、 SelectManifestで(4)のアプリケーションマニュフェストを読み直す
-
マニュフェストを保存
(6)編集したマニュフェストをアップロード
-
ここで編集したマニュフェストファイルを再びサーバーにアップロードします
難読化されたファイルのClickOnceによる配置は他所様のウェブサイトでも紹介してますが、どれも手順が複雑です。 悪戦苦闘した結果、このやり方が最も簡単でした。
ただ、Vistaに対応させるために、 アプリケーションマニュフェストに管理者など特権昇格のための指示はどうやっても書き込めませんでした。
コメント
防備録???備忘録じゃないの?
投稿者 sena : 2009年03月15日 20:08
指摘ありがと
投稿者 吉田章太郎 : 2009年03月16日 08:26
- Search
- 最近の記事
- カテゴリー
- 過去の記事
-
- 2011年05月
- 2011年03月
- 2011年02月
- 2011年01月
- 2010年12月
- 2010年11月
- 2010年10月
- 2010年09月
- 2010年08月
- 2010年07月
- 2010年06月
- 2010年05月
- 2010年04月
- 2010年03月
- 2010年02月
- 2010年01月
- 2009年12月
- 2009年11月
- 2009年10月
- 2009年09月
- 2009年08月
- 2009年07月
- 2009年06月
- 2009年05月
- 2009年04月
- 2009年03月
- 2009年02月
- 2009年01月
- 2008年12月
- 2008年11月
- 2008年10月
- 2008年09月
- 2008年08月
- 2008年07月
- 2008年06月
- 2008年05月
- 2008年04月
- 2008年03月
- 2008年02月
- 2008年01月
- 2007年12月
- 2007年11月
- 2007年10月
- 2007年09月
- 2007年08月
- 2007年07月
- 2007年06月
- 2007年05月
- 2007年04月
- 2007年03月
- 2007年02月
- 2007年01月
- 2006年12月
- 2006年11月
- 2006年10月
- 2006年09月
- 2006年08月
- 2006年07月
- 2006年06月
- 2006年05月
- 2006年04月
- 2006年03月
- 2006年02月
- 2006年01月
- 2005年12月
- 2005年11月
- 2005年10月
- 2005年09月
- 2005年08月
- 2005年07月
- 2005年06月
- 2005年05月
- 2005年04月
- 2005年03月
- 2005年02月
- 2005年01月
- 2004年12月
- 2004年11月
- 2004年10月
- 2004年09月
- All Entries
- Comments
-
- 地震とストレージの関係
永ちゃん (03/18)
吉田章太郎 (03/19)
- 地震の影響
永ちゃん (03/12)
吉田章太郎 (03/13)
- 無茶の代償
副将軍 (02/17)
吉田章太郎 (02/17)
- 本年の展望
yodog (01/09)
吉田章太郎 (01/20)
- ノロウィルス感染
永ちゃん (01/17)
吉田章太郎 (01/20)
- 地震とストレージの関係
- TrackBacks
-
- Powered by