我有一个设备,当某个应用程序在运行时向该应用程序发送数据。我需要嗅探数据并检索未显示的某些信息。该设备是自定义的,由于某种原因没有数据表。因此,必须嗅探通信并重新构建从应用程序发送到此设备的命令。所以我想用C#或C ++来实现这一点。现在我已经尝试了每一个嗅探软件,是的,他们会嗅探它,但我希望能够实现并检索数据并实时呈现。
谢谢
答案 0 :(得分:5)
最简单的方法是将软件放在设备和其他软件之间。然后,传递所有数据,捕获你需要的任何数据。
为此,您需要使用串行端口环回软件。那里有很多。见http://www.virtual-serial-port.com/virtual-serial-port-kit.html。我个人使用了GPSGate的产品,但我相信有free loopback drivers available。
更复杂(但更被动!)的方法是监控IOCTL。我不能指导你如何做到这一点,我不知道,但这是值得研究的。 http://www.serial-port-monitor.com/的软件使用此方法。
答案 1 :(得分:0)
为您提供虚拟串行端口的另一个软件是com0com(http://com0com.sourceforge.net/)。但是,它还具有集线器功能,可以将设备的输出发送到许多应用程序,这可能对您有用,也可能没有用,这取决于您是只需要监控设备的输出还是两个方向。
如果您沿着设备过滤器路线走下去,如果没有别的东西可能会给你一些开源代码来建立自己的嗅探器。但是如果你沿着这条路走下去,你可能需要查看驱动程序签名,如果你需要它可以在64位版本的Windows 7上运行。