2011-11-27 142 views
0

我有一个USB设备使用应用程序驱动程序与我的应用程序进行通信。我必须制作一个应用程序,用App Driver实际模拟这个USB通信,这样我就不必连接我的设备进行USB通信。设备和应用程序驱动程序之间的Hack USB通信?

总之,我必须破解应用程序驱动程序和使用其他应用程序的设备之间的USB通信。应该注意的是,通信所需的数据将包含在这个新的应用程序中。

不应调整应用程序驱动程序以便与此代理USB应用程序进行通信。该驱动程序是根据一些国际标准开发的,不会针对此类应用程序进行更改。

预期的操作系统将是Windows XP和Windows 7

我如何可以模拟USB设备,所以没有任何真正的硬件我可以测试应用程序?

+1

你的问题是什么?你试过什么了? –

+0

“b/w”是什么意思?带宽?黑与白? –

+0

正在做作业吗? – cpx

回答

2

硬件设备仿真可以在不同的级别完成。较低级别 - 更好的仿真,但通常低级仿真很难发展。它也可以是硬件仿真 - 实现与真实设备相同的通信协议的硬件设备。但让我们来谈谈软件仿真。考虑以下系统结构:高级(UI) - 硬件访问Dll - 驱动程序 - 通信端口(USB等) - 硬件设备。可以模拟每个级别:从硬件设备本身到硬件访问DLL。

要模拟硬件设备,你应该与硬件开发人员(而不是你的情况,我猜)。你想抓到司机的电话,使整个软件系统透明。我认为你有更好的机会在osronline上获得有关这种方式的信息 - 本网站上没有驱动程序专家。

您可以模拟驱动程序,提供另一个驱动程序甚至用户模式库,该库导出DeviceIoControl,ReadFile,WriteFile。这对硬件访问Dll几乎是透明的 - 在仿真模式下,它应该调用仿真的DeviceIoControl而不是Win32的DeviceIoControl。

最后,您可以通过在Dll本身提供仿真功能或通过使用相同接口编写另一个库来模拟硬件访问Dll。

如您所见,最后两个选项非常简单,并且允许在没有真实设备的情况下进行高级应用程序开发。当然,你想要做到这一点的方式是非常困难的,并且会给出最好的结果。再次尝试在Windows驱动程序开发人员网站上获取有关此信息的更多信息。

这也是很重要的,这个完整的链(从用户界面到设备)是你的什么部分,以及你的客户开发了哪些部分。如果客户提供硬件设备,驱动程序和硬件访问DLL(SDK),那么您就可以模拟此SDK,而无需编写复杂的钩子工具。

+0

已关闭 - 正如你所看到的,这里的人们甚至不明白你在说什么关于。错误的地方询问硬件和驱动程序编程问题。 –