1. 项目背景与核心需求
作为一名长期从事嵌入式设备开发的工程师,我最近遇到了一个有趣的需求:如何让向日葵控控A2(OrayKVM)在连接目标主机时,伪装成主流厂商的USB输入设备。这个需求源于某些企业环境对USB设备的严格管控策略。
向日葵控控A2本质上是一个基于STM32单片机的硬件KVM设备,它通过模拟USB HID(人机接口设备)和HDMI采集功能,实现了对目标主机的远程控制。默认情况下,设备会使用STMicroelectronics的标准VID(0483)和自定义的PID(572B)。但在某些安全策略严格的网络环境中,这种非标准设备很容易被识别和拦截。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术原理与可行性分析
2.1 USB设备识别机制
当USB设备插入主机时,系统会通过以下信息识别设备:
- VID(Vendor ID):16位厂商标识符,由USB-IF分配
- PID(Product ID):16位产品标识符,由厂商自定义
- 设备描述符:包含设备类别、子类别等信息
2.2 固件修改可行性
通过逆向分析发现,OrayKVM的USB设备信息存储在固件的特定区域。修改这些数据理论上可以实现设备伪装,但需要注意:
- 固件校验机制可能阻止修改后的固件运行
- 错误的修改可能导致设备无法启动
- 某些功能可能依赖原始VID/PID
3. 准备工作与环境搭建
3.1 所需工具清单
- 向日葵控控A2设备一台
- 网络连接(用于SSH访问)
- 十六进制编辑器(如HxD或010 Editor)
- SSH客户端(如PuTTY或OpenSSH)
- TFTP服务器软件(用于固件传输)
3.2 设备网络配置
- 将控控通过网线接入局域网
- 在路由器管理界面查找设备IP(通常以192.168.1.x形式出现)
- 记录下分配的IP地址,后续操作将基于此地址
4. 固件提取与修改流程
4.1 获取设备访问权限
OrayKVM提供了两个SSH端口:
- 端口44022:受限的chroot环境
- 端口44033:完整权限的root账户
建议使用以下命令连接:
bash复制ssh root@<设备IP> -p 44033
默认密码通常为设备背面标签上的SN码。
