2
  1. また、公開された ASP.NET をプリコンパイルできることも知っています。
  2. .NET アプリケーションは MSIL にコンパイルされ、Red Gate の .NET Reflector などのツールを使用して任意の .NET 言語に簡単に戻すことができます。
  3. 購入者がサイトをホストし、コードにアクセスできない ASP.NET サイトを開発して提供したいと考えています。

それを行う方法はありますか?

4

14 に答える 14

8

私の経験では、コードを難読化している人は、苦労する価値のあるコードを生成しません。

于 2009-01-05T15:06:53.153 に答える
5

しないように伝えてください。決心したリバース エンジニアを止めることはできませんが、それが契約に含まれている場合は、それによって利益を得ている人に対して頼ることができます。

難読化を行うと、開発者だけでなく、コードにプラグインしている顧客にとってもデバッグが困難になります。

それを避けるべきもう 1 つの理由は、「秘密の」ポート、暗号化キー、またはハンドシェイクを含めようとする誘惑です。コードにこれらのいずれかがある場合は、非常に異なるモデルを見つける必要があります。

于 2009-02-19T17:55:00.490 に答える
3

dll として発行する場合、 .cs/ .vb ファイルを Web サイトで実際に発行するわけではないことを知っておくと安心するかもしれません。これは、設置するのが最も簡単な障害物だと思います。

DLL からコードを取得することはできますが、ソース ファイル自体はそこにある必要はありません。

Web プロジェクトを Web アプリケーションに変換してビルドします。出力はdllになります。これをすべてのメディア ファイル (aspx、gif、png など) と一緒にプッシュすると、ソースは勤勉でない人から隠されます。

于 2009-01-05T14:26:06.230 に答える
3

それは「難読化」と呼ばれます。それを行う商用製品があります。逆コンパイルを正確に防止するわけではありませんが、プログラムの内部をめちゃくちゃにして、頭や尾を作るのが難しくなります。

特別な状況下でコードが壊れる可能性があることに注意してください。そのため、機能するまでオプションをいじる必要があります。

Dotfuscator は人気のあるツールであり、機能を取り除いた無料のコミュニティ バージョンが Visual Studio に付属しています (ただし、どのエディションかはわかりません)。

于 2009-02-19T17:53:19.177 に答える
2

単なるアイデアですが、あなたの場合ではないかもしれません:

可能であれば、アプリのどこかで Web サービスを使用してください。分散コードにより、逆コンパイルに使用できるのはクライアント ロジックのみになります。

于 2009-09-11T21:24:42.040 に答える
2

Manco .NET Licensing Systemを調べてください。ライセンス保護、コード難読化、およびコード暗号化の機能を提供します。ASP.NET アプリケーションは、いくつかの異なる方法を使用して保護できます。ライセンス キーまたは HTTP 要求からのドメイン名を使用します (http://mancosoftware.blogspot.com/2010/10/protect-aspnet-application-using-name. html) などです。

于 2010-11-14T09:28:29.493 に答える
1

難読化を調べることができます。 Dotfuscatorは、開始するのに適した場所です。

于 2009-02-19T17:50:54.373 に答える
1

Visual Studio プロジェクト テンプレートを使用して、ASP.NET Web サイトまたはプロジェクト内のすべての aspx/ascx ファイルをプリコンパイルする方法があります。

ScottGu のブログを読む: VS 2008 Web 配置プロジェクトのサポートがリリースされました

展開プロジェクトをコンパイルすると、すべての aspx/ascx ファイルに対して単一のアセンブリが作成されます。

ソース コードを本当に隠したい(判読できないようにしたい) 場合は、専門的な難読化ソフトウェアを使用する必要があります。

于 2009-01-05T14:33:34.437 に答える
0

私は間違っているかもしれませんが、IISがbinフォルダーからファイルを提供することを確信していません(とにかく私にとってはそうではありません。これは、web.configをダウンロードできないのと同じ方法で設計されていると思います-また、ディレクトリの内容も一覧表示されません)。これが正しければ、ハッカーがサーバーへのファイルシステムアクセスを取得できない限り、ハッカーが最初にdllを取得する方法があるとは確信していません。

単一のdllへのコンパイルに関する上記のアドバイスに従う場合、難読化ツールは必要ないと思います(ファイルシステムにアクセスできる人を心配している場合を除きます。その場合、他の問題があると思います!)

于 2009-01-05T14:56:40.333 に答える
0

Web.configDLL として発行した後、IIS によって提供されないパスにそれ (および などの他のサーバー側ファイル) を配置することを忘れないでください。

于 2009-01-05T16:19:58.357 に答える
0

どのバージョンの VS を使用していますか? VS2005 SP1 には、Web 配置と呼ばれる新しいプロジェクト タイプがあります。ソリューション エクスプローラーで Web サイト名を右クリックすると、[Web 配置プロジェクトの追加] オプションが表示されます。これにより、単一の DLL を作成し、それを参照するように aspx ページを変更する新しいプロジェクトがソリューションに追加されます。

ソリューションをビルドすると、Web 配置プロジェクト フォルダーに、単一の dll を含むバージョンのサイトが作成されます。これをサーバーにコピーし、データベースとファイル システムのアクセス許可 (アップロードなど) を設定すれば、すぐに作業を完了できます。

于 2009-01-05T15:08:21.450 に答える
0

プロジェクトをバイナリとして発行すると、コンパイラは bin フォルダーに DLL を作成し、すべてのページも作成されますが、コードは含まれず、マーカー ファイルを示す 1 行だけです。したがって、ユーザーがサイトを閲覧するときは、通常どおりページを閲覧します。あなたのページはサーバー側でdllの正しいコードを指します

于 2009-01-05T15:09:07.330 に答える
0

あなたは正しい道を進んでいます。DLL は大きな助けになりますが、少なくとも一部を取得するために逆コンパイルすることができます。

Dotfuscator のような難読化ツールを使用することは、適切な追加手順です。 この FAQは、難読化ツールを理解するための良い出発点です

重要なのは、自分が何をしているのかを特定することです。コードをデプロイする場合、誰かがコード内でメソッドを呼び出すのを止めるのは非常に困難です。それらが実際のソースを取得できないようにするだけの場合は、そのほうが簡単で、難読化が機能するはずです。

于 2009-01-05T14:27:44.933 に答える
0

私は常に、Web サイトを DLL に事前コンパイルし、コードをオンラインに含めないことを選択します。これは、匿名ユーザーがコードにアクセスできないことを意味します。

ただし、サーバーへの管理者アクセス権を持つ人々が心配な場合は、彼らがバイナリをほとんど読み取り可能なものに分解する可能性があります.

于 2009-01-05T14:28:43.323 に答える