失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【开发工具】【Bus Hound】USB抓包工具(Bus Hound)的使用

【开发工具】【Bus Hound】USB抓包工具(Bus Hound)的使用

时间:2019-10-29 15:55:03

相关推荐

【开发工具】【Bus Hound】USB抓包工具(Bus Hound)的使用

获取更多相关的嵌入式开发工具,可收藏系列博文,持续更新中:

【开发工具】嵌入式常用开发工具汇总帖

目录

Bus Hound概述

Bus Hound使用说明

settings设置 - 设置捕捉的内容

Device设置 - 设置捕捉的设备

Capture设置 - 开始捕捉数据

Save - 导出捕捉的数据

Bus Hound概述

Bus Hound是一个超级软件总线协议分析器,用于捕捉来自设备的协议包和输入输出操作。该软件是由美国perisoft公司研制的一种专用于PC机各种总线数据包监视和控制的开发工具软件,其名"hound"的中文意思为"猎犬",即指其能敏锐地感知到总线的丝毫变化。

本文档是对USB控制开发软件—Bus Hound的使用方法的总结。适用于正在学习USB总线驱动的技术工程师。

Bus Hound下载地址

BusHound v6.0.1

Bus Hound使用说明

主要介绍下Bus Hound的几个界面,各个选项的含义,以及如何设置。

settings设置 - 设置捕捉的内容

limits(设置缓冲区)

Capture Capacity(捕获能力): 用于捕获数据缓冲区的容量,以K为单位。Max Record Length(最大记录长度): 是在传输时显示的最大字节数(设置为512可以看到完整的描述符信息)

Stop When…(设置停止条件)

用于停止捕获操作的触发条件,可对触发条件进行任何组合,只要有一个触发条件满足时,捕获操作将停止,屏幕上将用高亮红色显示对应的触发数据

Buffer Full(缓冲区满): 当缓冲区满时停止操作,如果未选中此选项,系统将采用滚动覆盖模式保存最近捕获到的数据Not Ready(没有准备好): 遇到设备未准备好,超时,或忙的情况时停止捕获操作No Media(没有媒体): 当设备返回没有媒体时,停止捕获操作Media Error(媒体错误) : 当设备返回一个媒体错误时,停止捕获操作,典型情况是报告发现扇区错误Hardware Error(硬件错误): 当发生硬件错误时停止捕获操作Bus Reset(总线复位): 遇到总线复位操作时停止捕获操作Invalid Command(非法命令): 当发现非法的命令时停止捕获操作Data Overrun(数据过载): 当发生数据过载或数据欠载时,停止捕获操作Vendor Error(厂商错误): 当一个独特的厂商错误出现时停止捕获操作Any Other Error(任何错误发生): 当系统遇到任何种类的错误发生时停止数据捕获操作Text Pattern / Hex Pattern(文本式样): 当出现定义的特殊式样的文本数据时,停止捕获操作,对于文本式样,区分大小写,检查过程遍及数据传输的每个阶段,包括命令,数据和状态阶段Merge Repeated Commands(合并重复命令): 出现命令与前一命令相同的状况时,新命令将不独记录,取而代之的是,前一命令的数量值加1(去掉这个,相同的字节就不会合并)Enable SoundS(执行捕获): 设定或遇到触发条件弹出设备窗口时,发出“呯”的一声

Driver I/O to Capture(设置要捕获的驱动程序)

这个选项包括了需要抓取的驱动程序类,如果取消勾选,那对应的驱动输出的所有数据都会被过滤。

不详细说明。

Phases to Capture(设置要捕获的数据包类型)

这个选项包括了Bus Hound所有能捕获的阶段列表,复选对应的选项表示进行捕获操作,清除复选框时表示不进行捕获,这个选项对于用于过滤不感兴趣(无用)数据尤为有用。

ATAS - ATA task file status【硬盘,ATA命令】ATA - ATA task file command【硬盘,ATA命令】ATP - ATA pass throuth【硬盘,ATA命令】BRB - Biletooth request block【蓝牙】CMD - SCSI/ATAPI command【SCSI】CTL - USB control transfer【USB】USB控制传输IN - Data in transfer【USB】数据输入IRB - FireWire I/O request block【FireWire总线】IRP - I/O request packet【I/O请求】ISOC - Isochronous transter【USB】同步传输LOCK - FireWire lock transaction【FireWire总线】NTSTS - NT status value. 【/】ok - command complete【/】OUT - Data out transfer【USB】数据输出RESET - bus Reset【/】复位信号SENSE - SCSI sense data【SCSI】SPT - SCSI pass throuth block【SCSI】SRB - SCSI request block【SCSI】SSTS - SCSI request block status【SCSI】STAK - NT IRP stack location【I/O请求】URB - USB request【USB】USB请求块USTS - USB status【USB】USB状态

Ps:如果只是捕获USB相关的包,只选择:CTL、IN、OUT、URB、USTS...

Coloumn to Display(设置要纵列显示的项目)

这个选项用于设置纵列显示的项目,勾选的太多,显示起来会比较乱,最好只勾选几个关键的。

Device: 设备号(小数点后面代表端点)Address: 地址(FireWire异步地址或通道号码,略)Length: 数据长度Phase: 捕获类型(Phases to Capture中的选项)Data: 数据Description: 阶段捕获数据描述Delta: 相对上一次输出的时间增量Cmd.Phase.Ofs(rep) Date: 软件自带帮助文档Date:日期,以年月日形式出现Time: 时间相位以小时:分钟:秒。毫秒形式出现Driver: 驱动程序-提交命令的驱动程序

Device设置 - 设置捕捉的设备

启动Bus Hound软件,将USB设备插入电脑。如图所示,进入"Devices"目录,在"Devices"内选择要监控的设备。例如:我的设备是一个U盘,则设备为USB大容量存储设备,点击"USB大容量存储设备"图标,可以在下面的"Properties"图框内看到设备的总线类型、设备的电源以及各个端点的功能等信息。

Click in the check box to select a device(勾选设备,即可监听)Auto select hot plugged devices(勾选自动检测设备插入拔出)Properties(设备属性)(显示设备的一些细节特性)Send Command(发送命令)(发送命令到设备)

Send Command - 发送命令

选中需要监听的设备—-点击Send Command—-USB—-选中端点—-设置Data Length,输入发送的协议命令,点击Run,显示Complete选中需要监听的设备—-点击Send Command—-USB—-点击Reset Device,复位设备选中需要监听的设备—-点击Send Command—-USB—-点击Hot Plug,热插拔切至Capture,查看捕获的数据。Ps:直接在下面的"Hex Bytes"框中可以输入数据。框中的部分既是数据输入部分,直接输入数值就可以。最后点击 “RUN” 完成发送。

Capture设置 - 开始捕捉数据

在“Capture”目录中,点击“Run”按钮,开始捕捉数据。在“Find”搜索框中输入要搜索的内容,点击旁边的上下搜索箭头,可搜索数据。例如:在搜索框输入GET DESCRIPTOR,点击Find旁边的上下搜索箭头,可查询包含GET DESCRIPTOR的数据。点击“Stop”按钮,可以停止捕捉数据,再按“Run”可以清除所有数据并重新开始捕捉数据。

Save - 导出捕捉的数据

如果觉得《【开发工具】【Bus Hound】USB抓包工具(Bus Hound)的使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。