ソフトウェアにロックおよびコピー防止システムを実装しています。私は、誰かが私のロックを破ることを可能にするすべての穴を閉じました (まあ、それは少し楽観的すぎますね!) しかし、最後のことはこれです:
クラッカーは、私が使用する API がクラッカーによって指定された値を返すように、Kernel32.dll などの Windows DLL を変更できると聞いています。これを防ぐ必要があります。
最初は、使用するすべての DLL のハッシュ値を作成し、そのハッシュをクライアント DLL の計算されたハッシュと照合して、ファイルが変更されているかどうかを確認できると考えました。さまざまなバージョンの Windows 用にさまざまなバージョンの DLL があり、Microsoft が提供するすべての修正プログラムと Service Pack によってファイルが変更される可能性があるため、これは機能しません。
次に、ファイルの署名をチェックして、有効な Microsoft 署名があることを確認できることに気付きました。今2つの質問があります:
- Microsoft は Windows DLL に署名していますか? この署名に関する情報を見つけるにはどうすればよいですか?
- 署名を検証するための公開鍵は提供されていますか? このキーを使用してファイルを検証するにはどうすればよいですか?
ウォークスルーは大歓迎です。私のアプリは、Visual Basic.NET を使用して作成されています。
みんなありがとう。