在 USB 设备上写入字节
Writing Bytes on USB Device
我有一个 USB 设备,我想向其发送一些字节。
lsusb
Bus 001 Device 005: ID 04b4:0a0a Cypress Semiconductor Corp.
我认为,对于 Wireshark 和 usbmon,特定的字节序列会导致所需的行为(它会解锁物理锁)。
现在我想复制这个并自己发送。因此,我尝试创建一个二进制文件并将其写入总线,如下所示:
cat byteFile > /dev/bus/usb/001/005
但我收到以下错误:
cat: write error: Invalid argument
现在似乎无法在 "raw" USB 设备上写入字节,但我没有找到执行此操作的正确(或通用)方法。如何将字节序列从文件发送到 USB 设备?如果可能的话,我很乐意在 python/java 或 bash 中得到这个 运行。这样我以后就可以在我的程序中使用它。 -> 无 GUI 应用程序 ;-)
您不能将原始字节发送到 USB 设备。 Intead 您将 URB(即 USB 请求块)发送到 USB 端点。
使用 usbmon,您可以发现该端点以及 URB 的参数和负载,然后使用 libusb
.
从您的程序中复制它
但是 libusb
是一个访问原始 USB 设备的 C 库,但我不知道有什么方法可以直接从命令行使用它。我的建议是编写一个简单的 C 程序,将您想要的数据发送到正确的端点,然后从您的脚本中调用它。
我有一个 USB 设备,我想向其发送一些字节。
lsusb
Bus 001 Device 005: ID 04b4:0a0a Cypress Semiconductor Corp.
我认为,对于 Wireshark 和 usbmon,特定的字节序列会导致所需的行为(它会解锁物理锁)。 现在我想复制这个并自己发送。因此,我尝试创建一个二进制文件并将其写入总线,如下所示:
cat byteFile > /dev/bus/usb/001/005
但我收到以下错误:
cat: write error: Invalid argument
现在似乎无法在 "raw" USB 设备上写入字节,但我没有找到执行此操作的正确(或通用)方法。如何将字节序列从文件发送到 USB 设备?如果可能的话,我很乐意在 python/java 或 bash 中得到这个 运行。这样我以后就可以在我的程序中使用它。 -> 无 GUI 应用程序 ;-)
您不能将原始字节发送到 USB 设备。 Intead 您将 URB(即 USB 请求块)发送到 USB 端点。
使用 usbmon,您可以发现该端点以及 URB 的参数和负载,然后使用 libusb
.
但是 libusb
是一个访问原始 USB 设备的 C 库,但我不知道有什么方法可以直接从命令行使用它。我的建议是编写一个简单的 C 程序,将您想要的数据发送到正确的端点,然后从您的脚本中调用它。