1. ホーム
  2. dll

[解決済み] c# dllの暗号化

2022-02-15 18:14:09

質問

ASP.NETページで使用されるC#コードを暗号化する必要があります。そのため、DLLファイルを作成するためにコンパイルするとき、DLLファイルを暗号化する必要があります。DLLファイルを暗号化する方法を教えてください...

解決方法は?

暗号化された.dllを別の.dllに埋め込み、それを実行時に復号してロードすることができるかもしれません。

  • まず、保護したいコードをすべて含む.dllをコンパイルします。
  • 次に、.dllを適切と思われる方法で暗号化します。
  • 次に、暗号化された.dllをリソースとして埋め込む2つ目の.dllを作成します。
  • 2番目の外側の.dllが、実行時にキーを要求するようにします。
  • 外側の.dllは、暗号化された.dllをそのキーで復号化します。
  • 外側の .dll は、次に システム.AppDomain.CurrentDomain 静的メソッドを使用し、復号化された.dllをロードします。 ロード メソッドを使用します。
  • 外側の.dllは、ASP.NETと復号化された.dllの間で何らかの相互運用を行う必要があるかもしれません。

この方法には制限があります。起動時に毎回、インスタンスにキーを与えて実行させる必要があります。これを遮断する方法があります。また、暗号化された.dllは、キーが提供されると、メモリ内に暗号を解除して存在することになります。これを読み取る方法があります。

この方法は、ハードディスクドライブを盗むような人からコードを保護するためにのみ有効です。この方法は、コードを実行するマシンを制御している人に対する絶対的なバリアではありません。