21

オペレーティングシステムがMac-ID、ハードディスクID、イーサネットカードIDが一意の識別子を持っているように、USBデバイスを一意の識別子で識別することは可能ですか?USBパーティションのボリュームシリアル番号を簡単に変更できること、またはユーザーがフォーマットするときに変更できることを知っています。

しかし、WMIサービスを使用してMFC(Visual C ++またはC#)を介して取得できる「USBハードディスクIDまたはUSBハードウェアID」のようなIDはありますか?そのような識別子は物理デバイスに固有ですか?親切に明確にしてください...

4

1 に答える 1

25

USBデバイスで使用可能な「一意の番号」に最も近いのは、VIDとPID、ベンダーIDと製品IDです。これは、デバイスを識別し、それに適切なドライバーをインストールするために使用されます。ただし、これは同じ製品の同じ番号のセットであり、手元にある特定のデバイスを識別するのに十分ではありません。したがって、おそらくあなたが求めているものであるライセンス検証手順を実装するのは無意味です。

特定の種類のUSBデバイスのみがシリアル番号を実装しています。ドライブフォーマッタがボリュームシリアル番号を生成するため、フラッシュドライブから誤って取得します。役に立たないので、簡単に交換できます。USB Wi-Fiアダプターが機能する可能性があるため、メーカーは一意のMACアドレスを生成する必要があります。

この目標に最適なUSBデバイスのクラスが1つあります。総称は「ドングル」で、このために作られています。購入すると、プログラムにリンクできるソフトウェアも入手できます。このソフトウェアは、ライセンス番号を検証するための改ざん防止方法を提供します。これは、ライセンス検証手順のもう1つの重要な部分であり、通常は弱いリンクです。このウィキペディアの記事でドングルの詳細をご覧ください。

于 2012-12-27T13:34:52.163 に答える