SerialPort嗅探

时间:2012-01-22 10:15:34

标签: .net serial-port sniffing virtual-serial-port

我有一个通过USB连接到PC的设备,它通过驱动程序和软件映射到虚拟串行端口,该软件连接到该串行端口并允许我管理设备。我不知道协议软件用什么来连接设备。我可以通过查看设备和软件之间的通信来找出协议,但串口的问题是,一旦软件连接到串口,其他软件也无法连接到该端口(当然这是有道理的)。

所以我想我可以编写一个可以执行以下操作的软件:

  1. 连接到设备所在的虚拟串行端口
  2. 创建软件将连接到
  3. 的虚拟串行端口
  4. 内部传输从第一个端口到第二个端口的所有内容,反之亦然,但将所有这些信息记录到某个转储文件
  5. 我的问题是:是否可以使用.NET创建虚拟串行端口?我没有听到,因为你需要创建一个驱动程序或其他东西而且需要内核级编程,是吗?如果是这样,有没有办法在没有任何桥接软件的情况下观察设备和软件之间的通信?

    提前致谢! 亚伦

2 个答案:

答案 0 :(得分:2)

你试过Portmon吗?

这就是网站所说的

它是一个监视和显示系统上所有串行和并行端口活动的实用程序。它具有先进的过滤和搜索功能,使其成为探索Windows工作方式,查看应用程序如何使用端口或跟踪系统或应用程序配置中的问题的强大工具。

http://technet.microsoft.com/en-us/sysinternals/bb896644

已知问题:PortMon v3.03中存在一个错误(请参阅here),这使得所需的“计算机”菜单项不会出现在某些系统上。一种解决方法是在打开v3.03之前连接到v3.02中的本地计算机。

答案 1 :(得分:2)

如果菜单Capture / Ports为灰色,则此方法有效:

从命令提示符处使用portmon / c启动portmon实例。 然后启动另一个,使用带有127.0.0.1的ctrl-r作为连接到您自己的PC的地址。