DLL ファイルをライセンス ファイルで保護する [終了]
質問
ライセンス ファイルを使用して DLL の使用/ロードを保護する最善の方法は何ですか?
解決
考慮すべき点がいくつかあります。
DLL のチェックサムを確認します。を使って 暗号ハッシュ関数, 、これをライセンス ファイル内または DLL 内に保存できます。これは、元の DLL ファイルがハッキングされていないかどうか、またはそれがこの DLL のライセンス ファイルであるかどうかを判断するための検証方法を提供します。いくつかの単純なバイト スワッピング手法を使用すると、ハッシュ関数が人里離れた軌道からすぐに外れてしまう可能性があります (したがって、再現するのは簡単ではありません)。
ハッシュを文字列として保存せず、署名のない short に分割して別の場所に置きます。
ラリーが言ったように、MAC アドレスはかなり一般的です。それを実現する方法の例はたくさんあります コードプロジェクト, ただし、最近では偽造が簡単に行われることに注意してください。
私の提案は、使用する必要があります プライベート/パブリック ライセンス生成用のキー。
つまり、攻撃モードはバイナリ (DLL ファイルの命令を変更する) になるため、これを防止するか、キーの生成を防止して、各ライセンスのユーザー、マシン、さらにはインストールを特定します。
他のヒント
DllMain() 内でライセンスを確認し、見つからない場合は終了します。
また、ライセンス アルゴリズムがどのように機能するかによっても異なります。のようなものの使用を検討することをお勧めします ディフィー・ヘルマン鍵交換 (あるいは RSA) 情報に基づいて、ユーザーに渡すことができるある種の公開/秘密キーを生成します。
(アプリケーションによっては、私が会社との契約にライセンス コードを書いたケースを 1 つ知っています。 Macアドレス, 、およびその他のデータをハッシュし、そのハッシュを暗号化し、登録番号が正しければ「キー値」を与えます)。これにより、キー ファイルを別のマシンに移動 (または与え) してソフトウェアを「盗む」ことができなくなります。
さらに深く掘り下げてハッカーを回避したい場合は、まったく別の話になります...