USB字符串描述符的實現(xiàn)

=============轉(zhuǎn)載著名出處=============

圖片看不清的,將圖片在獨立窗口打開。

先貼標準協(xié)議中的描述:

描述符本身:

image.png

image.png

主機的請求結(jié)構(gòu):

image.png


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

image.png

直接對一個設備抓包分析,setup包第3字節(jié)0x03,代表當前請求的是字符串描述符。

通常一個最簡單的設備會支持3個字符串描述符①語言描述符②廠商信息描述符③產(chǎn)品信息描述符④序列號描述符

其中語言描述符簡單說固定4字節(jié),常規(guī)的都是0x04、0x03、0x09、0x04(美式英語)

其余描述符都是符合UNICODE String Decrisptor結(jié)構(gòu),描述符類型區(qū)分是通過索引來實現(xiàn),具體代碼實現(xiàn):


首先肯定要保存靜態(tài)的描述符本身:

image.png

數(shù)組首字節(jié)表示描述符總長度,即這個數(shù)組的長度(單字節(jié),也就決定了描述符最大長度0xFF);下一字節(jié)固定0x03;后續(xù)全部是文字本身,注意是UNICODE編碼,還是挺簡單的,找規(guī)律就可以直接改了。


數(shù)據(jù)處理:

image.png

紅框中的switch判斷的值,就是前面提到的索引。除了語言描述符固定為0,其余都是自定義的。定義的位置:

image.png

貼出標準協(xié)議中的內(nèi)容,設備描述符結(jié)構(gòu)(部分):位置第14、15、16三個是索引值。

image.png

所以,演示中的,其實只有廠商、產(chǎn)品的描述,沒有序列號。廠商、產(chǎn)品、序列號描述符的支持是可選的,不支持就在設備描述符中將其寫0.


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频