[原创] 【可远程控制的 USB抓包工具tinySniffer】产品体验

qinyunti   2023-5-1 00:15 楼主

使用过程记录

配置WIFI

Micro USB接PC,不接外设,会在PC枚举出NDIS网络设备

image-20230501001230-1.png  

 

浏览器输入http://172.16.10.1/,可以登录设备,配置其连接WIFI

选择WIFI名,输入WIFI密码,点击ADD

image-20230501001230-2.png  

 

设备连接好WIFI

 

 

image-20230501001230-3.png  

 

 

远程登录

注册

image-20230501001230-4.png  

 

使用google账户登录

image-20230501001230-5.png  

image-20230501001230-6.png  

点击Access进入命令行界面

image-20230501001230-7.png  

 

用户名和密码是

sniff / tinySniffer

image-20230501001230-8.png  

 

查看帮助

sniff -h

image-20230501001230-9.png  

抓包

接上USB外设会自动抓包

但是没有sniffer.py 这个python文件,所以目前只能是插拔USB外设触发抓包

 

 

查看抓包文件信息

sniff -i

image-20230501001230-10.png  

 

导出抓包文件

sniff -u tinySniffer.pcap

image-20230501001230-11.png  

 

使用wireshark分析

如下是UVC项目设备枚举过程抓包的数据

打开wireshark

文件->打开 打开上面下载的文件

image-20230501001230-12.png  

 

只抓到了简单的几个包,没有抓到整个枚举过程,所以很遗憾抓包功能都还不是很完善。

 

参考

 

https://www.usb7.net/products/tinySniffer

 

 

 

 

 

BUG

插拔USB外设,导致设备枚举失败,网页登录断开。

image-20230501001230-13.png  

image-20230501001230-14.png  

 

待改善问题

谷歌账户登录不适合国内用户

网页操作响应较慢

不能实时抓包显示分析

 

问题回答

在做usb开发时,遇到过那些问题,是否有抓包的需求?

 

USB开发核心需求是能稳定可靠的抓包,不丢包,完整记录整个总线事件和数据,然后能够进行较好的可视化,并且能进行协议解析。稍微高端一点的需要能够记录复位,挂起等一些底层的事件,上位机的协议分析是重点。

 

是否了解过USB抓包工具,是否购买过USB抓包工具(提供品牌型号)?

 

个人在使用高端力科USB分析仪(公司用) + 国产USB分析仪(个人用) + BusHound(纯软件抓包)覆盖了所有的使用需求。

 

在tinySniffer注册和配网时遇到了那些问题,那些地方是可以改进的?

 

光需要谷歌账户科学上网一点,就不可能在国内推广。

 

使用tinySniffer抓包解决了什么开发问题,请详细描述(提供使用tinySniffer抓包的图片和.pcap文件)?

 

目前来说无法替代我上述使用的三个工具的任何一个功能。TinySniffer可以做的目前都有更好的更直接可靠稳定,更低成本的方案替代。而其他方案能做的tinySniffer并不能做。

 

如果tinySniffer解决了你的问题,是否愿意花1350元购买这个产品?

 

目前来说不太可能,没有解决实际需求,并且成本并没有比其他更好的方案更低。

 

建议

USB分析仪的关键是在协议分析,当然稳定可靠的硬件抓包也很重要。

 

以一个目前在使用的硬件USB抓包分析工具USB Packet Viewer来说确实性价比不错,非常便宜可以抓USB2.0高速信号,至少作为个人使用可以替代力科做备份使用。但是实际上影响它卖更高价格的原因是稳定性和上位机。上位机很容易出现卡死,卡死必须重新插拔,软件必须重启,脚本进行协议解析所以会很卡,另外硬件设计是直接并联USB差分线进行抓取信号,所以会对原总线有一些影响,没有设计隔离。如果能解决这些问题,它这个产品至少可以定位到2000以上甚至更高,现在价格才700多,甚至今后可以做选配上位机模块做增值的售卖模式。另外作者也有自己的网站分享USB知识,是国内USB论坛做的最好的了,所以生态很重要。

 

说实话USB复杂的是协议层,底层只是一个硬件抓包一般需求可以由开发板,PC机,工控机等现成硬件实现(除非是做高端设备需要专用采集硬件设备),能把协议解析做到完善的,绝对就可以在市场上战胜大部分对手,不过国内目前还没有特别突出的。

 

给一个USB分析仪的设计方向

 

高端: 模数混合方向 集成示波器和USB分析仪的功能,类似周立功的一些示波器和CAN分析仪集成了逻辑分析仪和示波器的功能,优势是上位机,可以进行自动化测试,完善的协议解析等。可以记录整个总线的信号细节,进行功耗,信号等底层分析。

 

中端: USB抓包工具+上位机软件, 硬件抓包工具只需要抓包即可,没有信号级别的分析降低硬件成本,但是可以重点优化上位机协议分析能力,尽可能支持全的协议,并且做到GU体验优化。

 

低端:纯软 ,不需要硬件,类似于bust hound替代类似软件,重点也是协议分析,调试方便性等。

 

目前来看tinySniffer属于最后一类, ARM开发板抓包记录数据远程导出,然后使用wireshark分析, 可能创新点就是远程操作了,但是使用远程操作还不能实时显示分析抓包数据,而且还只能记录usb数据,并不能发送usb数据。这个方案怎么说都没有现成的使用BusHound+远程桌面的方案来的直接有效还不需要额外硬件,直接远程桌面还能直接实时抓包分析,还能发送usb数据进行调试,操作体验也比网页操作好,直接一台几百的x86工控机或者现有的工作pc即可。

 

另外从硬件上来说开源的各种pi也很多,直接树莓派即可,没必要花钱去买tinySniffer这个硬件,并且软件也没有什么创新,直接使用树莓派+云服务器自己就可简单的搭建类似的环境。

 

另外ARM开发板抓包的能力也有限,可能会丢包,抓不了大带宽数据。

 

所以目前个人总结的本方案唯一的一个卖点是可以使用本开发板,替代PC主机(但是还不能替代PC的可靠性和性能,比如数据存储量,实时性,设备兼容性等),进行抓包,然后远程下载(看起来好像还是必须远程不能本地操作?)硬件上来说为什么不直接选择树莓派自己搭建呢? 关键还有一点下载之后还是得需要pc使用wireshark进行分析,又并不能省掉PC,所以前面的替代PC得唯一卖点又没了,反而又要多买一个硬件?

 

1000多的成本,那么为什么不使用几百的X86的工控机呢?所以本产品没有从用户需求和痛点上解决任何问题,也没有性价比的优势,也没有性能或者某个方向的特点,比如大数据量抓包,比如不丢包的性能。远程操作的创新实际现在就有免费低成本方案替代(远程桌面+低成本工控机)而且体验更好,也没有协议解析等关键的软实力提升,使用的wireshark做解析,实际上并不能解决协议分析的痛点,并且wireshark直接支持usb抓包根本不需要使用tinySniffer进行抓包再导入抓包文件离线分析,直接使用wireshark就可以直接在线实时抓包分析,远程的方案直接使用远程桌面即可,无需各种注册登录下载离线操作,尤其是谷歌账号和科学上网还有违法风险直接劝退了。

 

以上都是作为usb开发人员的一些真实体验感受,说的都比较直接,一些想法供参考。一定要找到痛点,先不求全,哪怕能解决一个痛点都是有市场的,就从不做硬件单纯做软件的角度,能做一款能解析所有主流USB设备协议,并且提供友好的GUI的上位机,就能替代BusHound,wireshark等,抢占不少市场,如果还能加上发送数据调试等功能又是一大优势。

就好比哪怕是一款串口调试助手,能做到添加各种校验码,任意数据发送,数据可视化显示曲线等小功能的软件都是有市场前景的,所以一定要找准需求解决痛点。

 

当然如果有时候需要远程简单记录个USB包,并不需要实时显示,可以事后再找台电脑分析,并且只能登录网页的话,那么还是可以一试。

本帖最后由 qinyunti 于 2023-5-1 11:08 编辑

回复评论 (3)

这个可远程控制的 USB抓包工具tinySniffer看来好像不好用

没有抓到整个枚举过程

点赞  2023-5-2 22:01
引用: Jacktang 发表于 2023-5-2 22:01 这个可远程控制的 USB抓包工具tinySniffer看来好像不好用 没有抓到整个枚举过程

他抓了3个文件。tinySniffer.pcap, tinySniffer-1.pcap, tinySniffer-2.pcap,但,他只上传了最开始抓的文件tinySniffer.pcap。


这是因为我们的用户手册里面没有说清楚,我们会改进的。

点赞  2023-5-3 08:57

=> 所以目前只能是插拔USB外设触发抓包
有4种方式,可以触发抓包,sniff -h显示:

tinySniffer starts usb capture when:
1) tinySniffer (with usb peripheral plugged) is connected to usb host (this powers on tinySniffer) (save to new file)
2) usb peripheral is unplugged and re-plugged to tinySniffer (save to new file)
3) run "sniffer.py -r" to restart usb capture and save to new file
4) run "sniffer.py -R" to emulate usb peripheral unplug / replug, restarts usb capture and save to new fil
点赞  2023-5-3 09:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复