USB Packet Viewer 应用分析软件介绍
应用分析软件不需要安装,直接解压usbpv.zip后直接运行usbpv.exe即可。软件默认的布局如下:
3.1 菜单栏
3.1.1 【文件】菜单
3.1.1.1 打开
清除当前内容再打开数据包文件。
默认支持 USB Packet Viewer 数据格式和 Wireshark 的 USB Low Level 数据包。可以通过 lua 脚本插件的方式支持更多的文件格式。
3.1.1.2 保存
保存当前工作区中的数据包。
3.1.1.3 保存可见包
只保存当前工作区中的可见数据包。
通常情况下数据中都会包含大量的 NAK 包和 SOF 包,这些包对协议解析没有意义。通过包过滤器关闭 NAK 包和 SOF 包的显示,再使用【保存可见包】功能,就能排除掉 NAK包和 SOF 包。
3.1.1.4 追加
不清除当前内容,直接打开数据包文件。数据包文件的内容会追加在现有数据之后。
3.1.1.5 导入数据包颜色
导入 Json 格式的数据包颜色配置,颜色配置包含【数据包视图配色】、【图形视图配色】以及【解码视图】的样式表。
3.1.1.6 导出数据包颜色
导出 Json 格式的颜色配置。
3.1.1.7 退出
退出程序。
3.1.2 【工具】菜单
3.1.2.1 开始抓包
使用 USB Packet Viewer 抓包器进行抓包,如果连接了多个设备,可以通过序列号对其进行区分, 点击【OK】按钮后开始抓包。
注意:当选择 AutoSpeed 时,需要将待测试设备重新插拔一下才收收到正确的数据包。如果使用指定速度模式,则不需要插拔设备
3.1.2.1.1硬件包过滤
勾先上【高级选项】复选框,可以看到如下图的硬件包过滤功能界面
- 数据包可以按照类型和按地址与端点进行过滤。
- 按类型过滤:要接收相应的包,将对应的复选框勾上即可。
- 按地址和端点过滤:分为【接受】和【丢弃】两种情况。
- 当选择接受时,满足下列地址和端点条件的包才会收上来,其它包会丢弃。
- 当选择丢弃时,满足下列地址和端点条件的包会被丢弃,其它包会收上来。
- 当地址为-1 时,表示不匹配地址。当端点为-1 时,表示不匹配端点。
- 当地址与端点都为-1 时,表示忽略此项条件。
- 【生效】复选框未勾选时,表示忽略此项条件。 如果所有的条件都没有生效,表示忽略掉匹配条件, 接收所有的包。
- SOF 包不受地址和端点过滤器影响。
3.1.2.2 使用插件抓包
使用兼容 USB Packet Viewer 协议解析软件的工具来抓包。
将抓包插件的动态库放入插件目录中,然后选择【使用插件抓包】。
如果只有一个插件,则直接进入插件配置界面。如下图:
如果有多个插件,进入插件选择界面,选择插件后进入插件配置界面。
3.1.2.3 停止抓包
停止当前正在运行的抓包器。
3.1.2.4 清除
清除当前工作区中的数据。
3.1.2.5 记录到文件
启动抓包后,同时将数据包保存在文件中。 保存在文件中的数据包可以大于数据包显示
数量。
3.1.2.6 启停解码器
启动或停止解码器,解码器工作时,此选项图标处于选中状态。 解码停止后,数据包只会显示在【数据包视图】中,不会发给后台的解码器。
可以在抓包过程中随时启停解码器,解码器停止后再启动,会从上一次停止处继续解码。
3.1.2.7 刷新解码器
清除已经解码的数据内容再重新解码,手动设置解码器之后需要使用此功能对解码视图内容进行刷新。
3.1.2.8 配置解码器
启动【解码器配置】 对话框,内容如下图所示
上面序号带*号灰色的内容为协议解析时自动配置的解码器,只能进行查看,不能删除和修改。
下面普通显示的为用户手动配置的解码器,可以修改及删除。 如果地址端点被同时配置了多个解码器,使用优先级为:用户配置>自动配置。
【解码器配置】对话框中各按钮功能如下:
- 【添加】: 增加一个解码器
- 【删除】: 删除选中的解码器
- 【启用自动解码】:勾先上时,使用协议解析时自动配置的解码器。否则不使用自动配
- 置的解码器。
- 【确定并重新解析】:关闭此对话框,更新解码器配置,更新解码视图。
- 【确定】: 关闭此对话框,更新解码器配置,不更新解码视图。
- 【取消】: 关闭此对话框,不更新解码器配置。
有一些设备类端点是双向的,接口中的端点既可以是 IN,也可以是 OUT。如音频类设备, 当接口配置为麦克风时,需要 IN 端点;当接口配置为音箱时,需要 OUT 端点。 这样的设备类可以在【解码器配置】对话框中设置端点方向。
有一些设备类的端点是可选的,如自定义的 HID 设备, 其 IN 和 OUT 端点都不是必须的。这样的设备在其端点的描述中带有(opt.)标志。
3.1.2.9 选项
调用【选项】对话框.选项配置内容如下图所示:
- 【数据包显示数量】:单位为百万包, 当数据包大于此设置时不会在软中显示,如果启动了【记录到文件】功能,超出显示数量的数据包会记录到文件中。
- 【临时文件目录】数据包查看时会存储到临时文件中,默认使用系统临时目录,可以通过【选择目录】修改临时目录,通过【显示】查看临时目录中的内容。
- 【主题】 默认支持【浅色】和【深色】两种主题, 如果样式表文件有效,则会使用样式表文件中的主题。
- 【未知速度当作】当遇到速度未知的包时,可以指定其速度。例如 Wireshark 文件中的数据没有速度信息,可以在此指定其速度。
- 【时间戳格式】:支持【相对时间】和【绝对时间】两种格式。使用【相对时间】时,可以调整时间原点,方便分析数据包之间消耗的时间。
- 【解码器选项】 解码器相关的参数
- 【最大内存】 设置解码器允许使用的内存大小,超过此值后解码器会停止,可以调整内存后通过【启停解码器】再次启动,解码器将会从上一次停止的位置继续解码。
- 【解码 xxx】选项。默认只打开了应答包、同步包和停止包的解码,其它数据都不会发往解码器处理。(这些数据依然可以在【数据包视图】中查看)通常情况下 NAK、 SOF、 Ping、 Preamble 以及不完整的数据包不会影响解码结果。 在高速
- 通讯时,会有大量的 Nak、 SOF 和 Ping 包, 这些包发往解码器会占用大量的处理能力,因此默认这些包不会发往解码器。
3.1.2.10 配置快捷键
调用【配置快捷键】对话框,配置功能快捷键。
选择需要配置快捷的【操作】,点击右侧的【快捷键】设置框,按下需要配置的快捷键, 同一个功能最多可以配置 4 个快捷键。
如果要清除配置的快捷键,点击快捷键设置框右侧的清除按键。
3.1.3 【视图】菜单
3.1.3.1 隐藏/显示列
隐藏或显示【数据包视图】中的列。
3.1.3.2 隐藏/显示包
隐藏或显示指定的数据包。数据显示以事务(Transaction)为单位,例如隐藏 NAK 包,那么整个 NAK 事务中的令牌包(Token)都不会显示。
3.1.3.3 放大、缩小、还原
【放大】、【缩小】或【还原】图形视图中的图像大小。
3.1.3.4 工具栏
显示/隐藏 工具栏和状态栏。
3.1.3.5 数据包颜色
调整【数据包视图】中的数据包颜色和字体。 分为【浅色】和【深色】两种风格,默认颜色方案如下图:
点击上图中的色块后,在右方进行颜色设置。
点击【改变字体】可以修改【数据包视图】中的字体样式和大小。
点击【更多色彩】可以选择更多的颜色,如下图:
3.1.3.6 图形视图颜色
调整【图形视图】中的数据包颜色和字体,配色方案与当前主题相同。若要设置其它主题的配色,在【选项】中切换主题,再进行配置。 界面如下图所示:
点击要修改颜色的元素,会在元素下方打开颜色修改器, 然后对其配色进行修改。
3.1.3.7 切换视图顺序
切换【数据包视图】和【图形视图】的顺序。
3.1.3.8 切换视图布局
切换【数据包视图】和【图形视图】的布局,水平或垂直。
3.1.3.9 自动选中
开关自动选中功能。当【自动选中】打开时,当选中【数据包视图】中的数据包时,【图形视图】中对应的数据包同时也会被选中, 反之亦然。
3.1.3.10 解码视图
打开/关闭【解码视图】
3.1.3.11 数据视图
打开/关闭【数据视图】
3.1.4 【搜索】菜单
3.1.4.1 查找
打开【查找数据包】对话框,如下图所示
查找数据格式有【HEX】、【ASCII】、【Unicode】三种。【HEX】可以与【ASCII】和【Unicode】互相转换。
例如要查找含有”Viewer”的字符描述符,需要选择【Unicode】格式,然后输入”Viewer”进行查找。
而要查找数据中含有”Viewer”的数据包时,需要选择【ASCII】格式。
- 【更多参数】数据查找以事务包(Transaction)为单位,通过更多参数可以指定要查找的事务类型。
- 【令牌阶段】 这里可以设置事务类型,以及数据包的地址和端点。
- 【数据阶段】这里可以选择数据包的类型,通常使用【Any】类型。
- 【握手阶段】这里可以选择事务包握手类型。
3.1.4.2 查找下一个
查找下一个数据包。
3.1.4.3 查找上一个
查找上一个数据包。
3.1.5 【语言】菜单
3.1.5.1 中文
UI 切换为中文
3.1.5.2 English
UI 切换为英文
3.1.5.3 加载翻译文件
加载其它编译后的 qm 翻译文件。
3.1.5.4 创建新的翻译
跳转至 http://pv-trans.tusb.org, 可以通过这里的 ts 文件创建新的翻译文件。
3.1.6 【帮助】菜单
3.1.6.1 在线帮助
跳转至在线帮助页面。
3.1.6.2 报告问题
跳转至问题反馈页面。
3.1.6.3 获取最新解析器
跳转至解析器托管页面。
3.1.6.4 显示插件目录
显示插件目录,如果没有,会自动创建。
3.1.6.5 关于
显示【关于】对话框。
3.2 标题栏
当有文件打开时,标题栏会将文件名显示在软件名前面。
3.3 语言切换
在【中文】和【English】间切换。
3.4 工具栏
工具栏上包含了多个子工具栏。这些子工具栏可以调整位置。
3.4.1 基本功能
【打开】、【保存】 说明 见【文件】菜单
【开始抓包】、【停止抓包】、【记录到文件】 见【 工具】 菜单。
【启停解码器】、【刷新解码器】、【配置解码器】、 【选项】 见【 工具】 菜单。
【放大】、【缩小】、【还原】 见【视图】 菜单
3.4.2 包过滤
【应答包】、【同步包】、【否定包】、【停止包】 见【视图】 菜单。
【帧起始包】、【Ping 包】、【缺失包】、【错误包】 见【视图】 菜单。
3.4.3 地址过滤
【地址】 -1 表示不过滤,其它值,只显示此地址的包
【端点】 -1 表示不过滤,其它值,只显示此端点的包
【 】 应用当前设置
3.4.4 查找
【查找】、【查找上一个】、【查找下一个】 见【 搜索】 菜单
3.5 状态栏
【左侧进度条】操作进度。当进行费时操作时显示当前进度,操作完成后此进度条自动隐藏。
【待解码】 等待解码的数据包
【内存消耗】 解码器内存消耗
【总共】 总共接收到的数据包数量。
【解析】 解析后数据包数量,大于【数据包显示数量】不会解析。
【可见】 当前可以看见的,改变数据包过滤选项会改变可见包的数量。
【右侧进度条】 当【打开】或【保存】文件时,显示文件加载和保存进度。
当抓包器工作时,显示抓包器内存使用状态,进度前面会显示内存总大小。
如下图所示:
3.6 数据包视图
以事务(Transaction)为单位显示数据包,双击数据包的第一列,可以展开或收起令牌包。
双击其它列显示数据包查看器,如下图:
右键点击数据包会打开数据包上下文菜单
可在菜单中调出【包查看器】或是将当前包设置为时间戳原点。
3.7 图形视图
以传输层(Transfer)为单位显示数据包,双击可以展开或关闭子数据包。
当【图形视图】中的数据包选中时,会同时更新【解码视图】和【数据视图】中的内容。
3.7.1 图形视图上下文件菜单
右键可以调出上下文菜单,如下图所示:
【设置为时间戳原点】 设置当前数据包时间戳为时间戳原点。
【解码为:】 手动配置当前数据包的解码器。
如果解码器只需要一个端点的数据,设置后立即生效,并刷新【图形视图】内容。
如果解码器需要多个端点数据,上下文菜单中会出现【继续设置】项,继续设置当前解码器的其它端点,已经设置的端点信息会在了菜单中显示, 如下图所示:
有一些设备的端点为可选的,如果不需要继续配置其它端点,点击【完成设置】选项结束当前解码器的端点配置。
3.8 解码视图
【解码视图】显示数据包解码后的内容,内容为渲染后 html 数据。
3.8.1 解码视图上下文菜单
【Copy Html】 复制当前内容为 Html 格式。
【Edit CSS】 修改当前主题样式表。
3.9 数据视图
【数据视图】显示解码后的数据内容,数据内容可以【另存为】二进制格式,也可【 复制为】多种格式:
- 【 Text】: 文本格式,文本编码格式可以在编码框中选择
- 【 Hex data】: 16 进制数据数据,数据间由空格隔开隔开
- 【 Array data】:可以在代码中使用的数组数据
- 【 Hex string】: 16 进制形式的的字符串数据
3.10 数据恢复
当软件异常关闭时,已经抓取的数据不会丢失。下一次打开软件时,会提示是否需要恢复上次未正常关闭的数据。