U盘BOT存储UFI协议INQUIRY命令说明及实例分析
2022-04-26
2823
2
INQUIRY定义为0x12,用于查询USB存储即U盘的基本信息,这些信息包括厂家信息,产品信息及产品版本号等。
INQUIRY流程图
INQUIRY命令通过BULK传输的OUT端点下发给设备,设备需要先返回基本的INQUIRY信息,再返回CSW状态。
INQUIRY命令格式
- LUN :被设置为 0 。
- EVPD :被设置为 0 。
- 页代码: UFI 设备仅支持页代码 0 标准查询数据。
- 存储空间长度:指定被返回的查询数据的最大字节数, 0 值将不会产生错误。
- UFI 设备通常根据请求的字节数返回查询的数据。它不会使用查询命令报告介质状态,例如介质改变或者驱动器不准备。查询命令将不会影响驱动器单元条件或介质状态。
INQUIRY命令是通过CBW下发的,内容位于该结构体的成员CBWCB成员数组0索引位置。
完整的CBW内容如下:
55 53 42 43 00 16 64 92 24 00 00 00 80 00 06 12 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00
格式:
UsbzhVDisk!_CBW
+0x000 dCBWSignature : 0x43425355
+0x004 dCBWTag : 0x92641600
+0x008 dCBWDataTransferLength : 0x24
+0x00c bmCBWFlags : 0x80 ''
+0x00d bCBWLUN : 0 ''
+0x00e bCBWCBLength : 0x6 ''
+0x00f CBWCB : [16] "???"
[0]:0x12
[1]:0x00
[2]:0x00
[3]:0x00
[4]:0x24
[5]:0x00
[6]:0x00
[7]:0x00
[8]:0x00
[9]:0x00
[10]:0x00
[11]:0x00
[12]:0x00
[13]:0x00
[14]:0x00
[15]:0x00
INQUIRY返回数据格式
外设类型用于指示当前连接的设备类型, 0 表示软磁盘设备。 RMB 代表可移除介质( Removable Media Bit ), 1 表示该设备具有可移除介质, 0 表示没有。
UsbzhVDisk!_INQUIRY_STRUCT
+0x000 DeviceType : 0y00000 (0)
+0x000 Reserved0 : 0y000
+0x001 Reserved1 : 0y0000000 (0)
+0x001 RMB : 0y1
+0x002 ANSIVer : 0y100
+0x002 EMCAVer : 0y000
+0x002 ISOVer : 0y00
+0x003 ReponseDataFormat : 0y0010
+0x003 Reserved3 : 0y0000
+0x004 AppendDataLength : 0x1f ''
+0x005 Reserved5_7 : [3] ""
+0x008 VenderInfo : [8] "USBZHCOM"
+0x010 ProductInfo : [16] "DataTraveler 2.0"
+0x020 ProducetVerInfo : [4] "0000"
结构体定义如下:
typedef struct _INQUIRY_RESONSE_STRUCT
{
UCHAR DeviceType:5;
UCHAR Reserved0 : 3;
UCHAR Reserved1 : 7;
UCHAR RMB : 1;
UCHAR ANSIVer : 3;
UCHAR EMCAVer : 3;
UCHAR ISOVer : 2;
UCHAR ReponseDataFormat : 4;
UCHAR Reserved3 : 4;
UCHAR AppendDataLength;
UCHAR Reserved5_7[3];
UCHAR VenderInfo[8];
UCHAR ProductInfo[16];
UCHAR ProducetVerInfo[4];
}INQUIRY_RESONSE_STRUCT;
INQUIRY返回的CSW
55 53 42 43 50 70 f9 aa 24 00 00 00 80 00 06 12
00 00 00 24 00 00 00 00 00 00 00 00 00 00 00
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936