0

これは私が達成しようとしていることです:

2つのアプリケーションがあります。1 つはクライアント アプリケーションで、もう 1 つはコンパイラです。クライアントは暗号化を使用しており、安全上の理由から、ユーザーが「コンパイラ」アプリケーションを実行できるようにしたいと考えています。これにより、既にコンパイルされたバイナリ内にセキュリティ キーがハードコーディングされるため、各クライアントには独自の暗号化キーが内部に格納されます。これは可能ですか、それとも解決策はおかしくなりますか? ありがとう。

4

2 に答える 2

2

確かに、あなたが話しているのは、MSIL コードを書き直すことだけです。Microsoft は、コード コントラクトを使用して常にこれを行っています。方法を説明する記事へのリンクは次のとおりです。 http://msdn.microsoft.com/en-us/magazine/cc188743.aspx

別の例: http://www.codeproject.com/Articles/20565/Assembly-Manipulation-and-C-VB-NET-Code-Injection

于 2012-04-17T13:28:33.640 に答える
1

アセンブリが強力に署名されている場合、それを変更することはできません。変更した .net アセンブリをディスクに保存することはできません。ただし、実行時にメモリにロードされたコードを変更できるように、(ケビンが述べたように) アセンブルをビルドできます。ディスク上のイメージには影響せず、アプリケーションを起動するたびに変更が実行されます。

于 2012-04-17T13:35:47.147 に答える