ASP.NETアプリケーションをパッケージ化して、顧客が修正できないようにする方法

StackOverflow https://stackoverflow.com/questions/1216897

  •  06-07-2019
  •  | 
  •  

質問

ASP.NETアプリケーションのすべてのファイルをバイナリ形式にパッケージ化して、展開後の変更を防ぐためのツールまたは一般的なアプローチはありますか?署名済みのバイナリのセットと、顧客が変更できる設定用の構成ファイルがあると考えています。誰かがこれを試みましたか?それは可能ですか?

最小限の手間でこれを行った滑らかな商用製品に妥当な金額を支払うことになります。

更新

申し訳ありませんが、回答から、私は明確ではなかったことがわかります。コードファイルだけでなく、文字通りすべてのファイルをパッケージ化することを意味しました。これは、aspx、スクリプト、画像などを意味します。リバースエンジニアリングを防止しようとはしていません。これは、サポート性の問題です。

正しい解決策はありません

他のヒント

Webアプリケーションプロジェクトを作成した場合、コードを単一のdllファイルにコンパイルできます。 binフォルダーにあります。

aspnet_compiler.exeを使用してすべてをプリコンパイルし、aspnet_merge.exeを使用して、コンパイルされたすべてのアセンブリを1つのアセンブリにロールアップします。リバースエンジニアリングをさらに困難にする場合は、DotFuscatorなどの難読化ツールを使用できます。 Visual Studio Pro以降には、「ライト」が含まれています。これに使用できるDotfuscatorのエディション。

ZippyVが既に述べたように、分離コードファイルは単一のdllにコンパイルされます。 aspxファイルはWebサーバーに正常に展開されます。

それでも、dllファイルは非常に簡単に分解できます。そのため、難読化ツールを使用する必要があります。

aspxを含むすべてのファイルを意味する場合は、ngenも検討できます。すべてをDLLにプリコンパイルするため、aspxページにアクセスすることさえできません。

ngenは、フレームワークのJITコンパイル機能を取り除くために設計されたものであり、一般的に推奨されるアプローチではありませんが、あなたの場合はうまくいくかもしれません。

VS2008から、メニューオプション[ツール]を選択します。そして、「Dotfuscator Community Edition」。 「詳細」があります。起動後のリンク。

また、SN.exeを使用して署名し、厳密な名前を付けます。これらすべてを考えると、ソースコードとヘルプが提供されている場合、システムを把握するのは十分に複雑だと思います。...もう心配する必要はありません。

多分 Dotfuscator 顧客はそれを修正したり、リバースエンジニアリングしたりできません:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top