8

私は C++ を使用して小さな Windows アプリを開発しています。特定の PC でのみアプリを実行できるように、PC 上のソフトウェア/ハードウェアの指紋を取得したいと考えています。

アプリがクラックされる可能性があることは承知していますが、このような実装に本当に興味があります。
どうすればこれを達成できますか?

4

3 に答える 3

11

それは基本的に、ソフトウェアを基礎となるハードウェアにどの程度緊密に結合したいかによって異なります。たとえば、レジ​​ストリからハードウェア情報を取得し、LAN カードから MAC アドレスを読み取り、gfx の製造元、CPU ID などを取得して、これらすべてのデータをハッシュすることができます。
このハッシュを、会社に送信されるチャレンジコードとして使用できます。その後、顧客は、このハッシュの署名付きバージョン (秘密鍵を使用) を受け取ります。
アプリケーションを起動すると、ハッシュの署名が正しいかどうか (つまり、会社によって署名されているかどうか) を確認できます。
これは、ソフトウェアを特定のハードウェア構成にバインドするだけでなく、クラッカーにアプリケーションにパッチを適用させることにもなります (keygen を書き込むために、実行可能ファイルから公開キーにパッチを適用し、それを置き換える必要があるため)。多くの人は、keygen からコピーされた有効なシリアルを入力するだけではなく、さまざまなソースから取得したクラックを 2 回インストールすることを検討しています。

編集:
ハッシュの署名を確認するには、RSA over DSAからECCまで何でも使用できます。そのためには、 Crypto++またはlibTomCryptをお勧めします。

于 2009-02-10T21:17:35.120 に答える
0

通常の PC でこれを行う信頼できる方法は知られていません。人々は何年も努力してきました。問題は、CPU や BIOS ROM などのコンポーネントをいつでも変更できることです。最も近い人々は、暗号で保護された「ドングル」を使用していますが、それは動作が不十分であり、あまり安全ではないことが証明されています.

何か思いついたら、それを特許にしましょう。それは非常に価値があります。

于 2009-02-10T21:16:29.880 に答える