USB字符串描述符的實(shí)現

=============轉載著(zhù)名出處=============

圖片看不清的,將圖片在獨立窗口打開(kāi)。

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

描述符本身:

image.png

image.png

主機的請求結構:

image.png

image.png

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

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

其中語(yǔ)言描述符簡(jiǎn)單說(shuō)固定4字節,常規的都是0x04、0x03、0x09、0x04(美式英語(yǔ))

其余描述符都是符合UNICODE String Decrisptor結構,描述符類(lèi)型區分是通過(guò)索引來(lái)實(shí)現,具體代碼實(shí)現:


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

image.png

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


數據處理:

image.png

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

image.png

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

image.png

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


只有登錄才能回復,可以選擇微信賬號登錄
97精品依人久久久大香线蕉97-亚洲欧美日韩一区二区三区-国产亚洲欧美精品久久久-久久99精品久久久大学生-亚洲成a人片在线不卡一二三区 97精品依人久久久大香线蕉97-亚洲欧美日韩一区二区三区-国产亚洲欧美精品久久久-久久99精品久久久大学生-亚洲成a人片在线不卡一二三区