14

What is the best way to secure the use/loading of a DLL with a license file?

4

3 に答える 3

5

考慮すべき点がいくつかあります。

DLL をチェックサムします。暗号化ハッシュ関数を使用して、これをライセンス ファイル内または DLL 内に保存できます。これにより、元の DLL ファイルがハッキングされていないかどうか、またはこの DLL のライセンス ファイルであるかどうかを判断するための検証方法が提供されます。いくつかの単純なバイト スワッピング テクニックを使用すると、ハッシュ関数を通常のトラックからすぐに外すことができます (したがって、再現するのは簡単ではありません)。

ハッシュを文字列として保存しないでください。別の場所で unsigned short に分割してください。

Larry が言ったように、MAC アドレスはかなり一般的です。The Code Projectでそれを取得する方法の例がたくさんありますが、最近では簡単に偽造できることに注意してください。

私の提案は、ライセンスの生成に秘密/公開キーを使用することです。

要するに、攻撃のモードはバイナリ (DLL ファイルの命令を変更する) であるため、これから保護するか、キー生成により、各ライセンスのユーザー、マシン、さらにはインストールを固有のものにします。

于 2008-09-20T07:21:43.257 に答える
4

You can check for a license inside of DllMain() and die if it's not found.

于 2008-09-19T23:21:54.173 に答える
2

また、ライセンスアルゴリズムがどのように機能するかにも依存します。いくつかの情報に基づいて、 Diffie-Hellman鍵交換(またはRSA)のようなものを使用して、ユーザーに渡すことができるある種の公開鍵/秘密鍵を生成することを検討することをお勧めします。

(アプリケーションによっては、会社の契約に基づいてライセンスコードを記述し、 MACアドレスやその他のデータを使用してハッシュし、ハッシュを暗号化して「キー値」を与えたケースを知っています。登録番号が正しかった場合)。これにより、キーファイルを別のマシンに移動(または提供)できなくなり、ソフトウェアが「盗まれ」ます。

もっと深く掘り下げてハッカーを避けたいのなら、それはまったく別のトピックです。

于 2008-09-20T07:06:21.390 に答える