私はC#でソフトウェアを開発しています。ユーザーダッシュボードには、ユーザーがアイコンをクリックすると、アプリケーションのアイコンがいくつか表示されます。アプリケーション(exeファイル)はサーバーからダウンロードされ、ユーザーのコンピューターのどこかに保存されます。このアプリケーション(exeファイル)をこのソフトウェアからのみ実行し、ファイルシステムから直接アクセスしないようにしたい。ユーザーがソフトウェアを介してのみアプリケーションを実行でき、直接アクセスすることはできないようにするためのソリューションはありますか?
2 に答える
3
いいえ、それは完全に不可能です*。暗号化がどれほど優れていても、プログラムがどれほど難読化されていても、人々は鍵を回復して破壊します。コードを実行するには、コンピューターに暗号化されていないコードのコピーが必要であることは言うまでもありません。コピーがある場合は、別のコピーを簡単に作成できます。気にしないでください。
*それに最も近いのは、おそらくまったく新しい言語を実装し、VMで実行することです。これは非常にわかりにくいものです。ただし、よく知られているように、不可逆的な難読化などはありません。また、メモリからコンテンツを復元することを恐れてコンパイルすることはできず、ネイティブコードに似ていると解読が簡単になるため、新しいコンパイラを作成する必要があるため、これは非常に遅くなります。
于 2012-04-08T16:14:06.310 に答える
0
素晴らしい質問です。ラッパーによってアセンブリをメモリに復号化できます。ラッパーは、ライセンスを取得した後にサーバーからキーを取得し、ラッパーがドメインを作成して、その中でこのアセンブリを実行します。ソフトウェアのデバッグを回避するには、codeplex/comのConfuserを使用できます
于 2012-04-08T16:16:19.570 に答える