<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何用Wireshark捕獲USB數(shù)據(jù)?

          如何用Wireshark捕獲USB數(shù)據(jù)?

          作者: 時(shí)間:2016-12-13 來源:網(wǎng)絡(luò) 收藏
          現(xiàn)在越來越多的電子設(shè)備采用USB接口進(jìn)行通訊,通訊標(biāo)準(zhǔn)也在逐步提高。那么,我們就會(huì)好奇這些設(shè)備是如何工作的?而無論你是一個(gè)硬件黑客,業(yè)余愛好者或者只是對(duì)它有一點(diǎn)興趣的,USB對(duì)我們都是具有挑戰(zhàn)性的。

          本文引用地址:http://www.ex-cimer.com/article/201612/329234.htm

          事實(shí)上通過wireshark,我們可以捕獲到usb設(shè)備發(fā)送給我們主機(jī)的數(shù)據(jù),這樣就可以進(jìn)一步研究了。

          本文中,我們將向大家介紹怎樣通過wireshark捕獲usb數(shù)據(jù),使用的環(huán)境如下:

          l Wireshark 2.0.1(SVN)l Linux kernel 4.1.6

          你也可以用其他版本的wireshark,只要是1.2.0以上的都行。這里并沒有測(cè)試window上能不能行。

          簡(jiǎn)介

          在開始前,我們先介紹一些USB的基礎(chǔ)知識(shí)。USB有不同的規(guī)格,以下是使用USB的三種方式:

          l USB UART l USB HID l USB Memory

          UART或者UniversalAsynchronousReceiver/Transmitter。這種方式下,設(shè)備只是簡(jiǎn)單的將USB用于接受和發(fā)射數(shù)據(jù),除此之外就再?zèng)]有其他通訊功能了。

          HID是人性化的接口。這一類通訊適用于交互式,有這種功能的設(shè)備有:鍵盤,鼠標(biāo),游戲手柄和數(shù)字顯示設(shè)備。

          最后是USBMemory,或者說是數(shù)據(jù)存儲(chǔ)。ExternalHDD,thumbdrive/flashdrive,等都是這一類的。

          其中使用的最廣的不是USBHID就是USBMemory了。

          每一個(gè)USB設(shè)備(尤其是HID或者M(jìn)emory)都有一個(gè)供應(yīng)商ID(VendorId)和產(chǎn)品識(shí)別碼(ProductId)。VendorId是用來標(biāo)記哪個(gè)廠商生產(chǎn)了這個(gè)USB設(shè)備。ProductId用來標(biāo)記不同的產(chǎn)品,他并不是一個(gè)特殊的數(shù)字,當(dāng)然最好不同。如下圖:

          上圖是連接在我電腦上的USB設(shè)備列表,通過lsusb查看命令。

          例如說,我有一個(gè)無線鼠標(biāo)Logitech。它是屬于HID設(shè)備。這個(gè)設(shè)備正常的運(yùn)行,并且通過lsusb這個(gè)命令查看所有usb設(shè)備,現(xiàn)在大家能找出哪一條是這個(gè)鼠標(biāo)嗎??沒有錯(cuò),就是第四個(gè),就是下面這條:

          Bus003Device010:ID046d:c52fLogitech,Inc.UnifyingReceiver

          其中,ID046d:c52f就是Vendor-ProductId對(duì),VendorId的值是046d,并且ProductId的值是c52f。Bus003Device010代表usb設(shè)備正常連接,這點(diǎn)需要記下來。

          準(zhǔn)備

          我們用root權(quán)限運(yùn)行Wireshark捕獲USB數(shù)據(jù)流。但是通常來說我們不建議這么做。我們需要給用戶足夠的權(quán)限來獲取linux中的usb數(shù)據(jù)流。我們可以用udev來達(dá)到我們的目的。我們需要?jiǎng)?chuàng)建一個(gè)用戶組usbmon,然后把我們的賬戶添加到這個(gè)組中。

          addgroup usbmon gpasswd -a $USER usbmonecho SUBSYSTEM=="usbmon", GROUP="usbmon", MODE="640" > /etc/udev/rules.d/99-usbmon.rules

          接下來,我們需要usbmon內(nèi)核模塊。如果該模塊沒有被加載,我們可以通過以下命令家在該模塊:

          modprobe usbmon

          捕獲

          打開wireshark,你會(huì)看到usbmonX其中X代表數(shù)字。下圖是我們本次的結(jié)果(我使用的是root):

          如果接口處于活躍狀態(tài)或者有數(shù)據(jù)流經(jīng)過的時(shí)候,wireshark的界面就會(huì)把它以波形圖的方式顯示出來。那么,我們?cè)撨x那個(gè)呢?沒有錯(cuò),就是我剛剛讓大家記下來的,這個(gè)X的數(shù)字就是對(duì)應(yīng)這USBBus。在本文中是usbmon3。打開他就可以觀察數(shù)據(jù)包了。



          關(guān)鍵詞: Wireshark捕獲USB數(shù)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();