使用 OllyDbg 分析 USB HID 设备接口协源地址:作者:Tase tase@163
com 关键字:OllyDbg,USB,HID,Bus hound,分析工具:OllyDbg,Bus hound 分析对象:一个 USB 接口飞行模拟器目的:通过分析使用 USB HID 设备的软件,从中其主程序中"扣"HID 设备数据协议,再根据这些协议自己实现 USB HID 的设备,达到仿制原装 HID 数据采集设备的目的
我有幸拿到了一款原装的飞行模拟软件和接口设备,这个模拟器是通过一个 USB 接口把遥控设备上的数据采集到 PC,再通过软件模拟现实飞行,因为原装设备昂贵,因此打算DIY 一套接口,便下手分析了一把
这个模拟器软件有两部分组成,其一是模拟软件,其二是一个 USB 的数据采集设备,在拿到设备前,我就猜想,它可能是 HID(人体学设备)DEVICE,现在很多 USB 数据采集设备都是采纳的 HID 协议的方法设计,这样的话就可以实现在 WINDOWS 下免驱动安装,并且可以通过 windows 自带的接口以客户态的方式访问这些硬件接口
经过测试,果然是 HID 设备,使用 Bushound5 总线观察器,用它来捕捉总线上的 USB设备数据,HID 设备很简单,花了两个小时就基本弄清楚了它大部分的数据含义,因此很快就根据我理解的协议把设备在单片机开发板上实现了,插上我的设备,模拟器软件很快就识别了我的接口,但显示各通道数据时,都是 0,也就是说,它的系统检测到了一个接口设备,但这个设备采样的数据是错误的
于是我又回到总线数据分析,找到我遗漏的 2 个 bit,这个 2 个 bit 是我没有理解的,我猜想它是校验位,经过观察,这个 2 个 bit 只和几个字节有关,但就是这 2 个 bit 花了我4 天的时间,这几天让我学会 Excel 中很多大多数人不知道的功能