オペレーティングシステムはUSBラバーダッキーをキーボードとしてどのように認識しますか?OSをだますのはUSBラバーダッキーファームウェアですか?
より一般的には、OSによるデバイスの認識は、デバイスファームウェアによって行われますか?
オペレーティングシステムはUSBラバーダッキーをキーボードとしてどのように認識しますか?OSをだますのはUSBラバーダッキーファームウェアですか?
より一般的には、OSによるデバイスの認識は、デバイスファームウェアによって行われますか?
回答:
USBデバイスが接続されると、OSはデバイスにデバイス記述子を要求します。これには、とりわけ、デバイスクラス、サブクラス、ベンダーID、および製品IDが含まれます。デバイスクラス3は「ヒューマンインターフェイスデバイス」です。これは、Rubber DuckyがOSに伝えるものです。OSは汎用キーボードドライバーをロードし、デバイスは好きなキーストロークを送信できます。これは実際のキーボードと区別できません。
ラバーダッキー用のツールを使用すると、VIDとPIDを任意の値に設定できます。メーカー名とデバイスのシリアル番号を取得する方法があるはずですが、それらはすべてデバイス自体によって提供されるため、ファームウェアはOSにそのまま置くことができます。(正当なデバイスでさえ、それらを空白のままにすることがあります。)
要約すると、あなたの言うとおり、OSはデバイスが何を言っているかを信じます。
Wikiから直接引用する:
デスクトップ、ラップトップ、タブレット、スマートフォンを含むほぼすべてのコンピューターは、キーボードを介して人間から入力を受け取ります。それが、HID(またはヒューマンインターフェイスデバイス)として知られるユビキタスUSB規格の仕様がある理由です。簡単に言えば、キーボードHIDであると主張するUSBデバイスは、ほとんどの最新のオペレーティングシステムによって自動的に検出され、受け入れられます。Windows、Mac、Linux、Androidデバイスのいずれであっても、キーボードは重要です。
http://usbrubberducky.com/#!index.md
OSのキーボードとして自身を識別します。OSがそれが何であり、それをどうするか/何を期待するかを知るために、デバイスは自身を識別する必要があります。デバイスがそれ自体を識別しない場合、何が起こるか正確にはわかりませんが、OSはおそらくそれをどうするかを知りません。