常见问题 (FAQ)

在此页面,我们首先回答最常见的问题。如果您没有找到答案,请立即联系 SerialTool 的开发团队!

  • 什么是 COM Sniffer?

    COM Sniffer 是一款功能强大的 Windows 工具,可让您被动且持续地(24/7)记录、嗅探和监控串口,分析您的应用程序或第三方软件的流量,并保持最大稳定性。 它提供简单直观的界面,兼容所有串口,包括物理端口和 虚拟端口(包含 USB 转串口)。您还可以监控其他程序已占用的 COM 端口上的流量。
  • 为什么 COM Sniffer 属于 SerialTool 的一部分?

    COM Sniffer 目前是 SerialTool 的集成模块。SerialTool 是一款跨平台的串口通信套件(Windows、macOS、Linux),具备丰富的高级功能。 未来 COM Sniffer 可能会以独立版本发布;目前它仅作为 SerialTool 的一部分提供。
    如有任何问题,请直接联系 SerialTool 团队。
  • COM Sniffer 是否支持 macOS 或 Linux?

    COM Sniffer 目前仅支持 Windows,因为在 Windows 上构建可靠的串口嗅探器需要内核级驱动和复杂的技术实现。 在 macOS 和 Linux 上有替代方案,这些方案不需要内核驱动,运行于用户空间。
  • 如何 安装 COM Sniffer?

    下载后,COM Sniffer 已包含在 SerialTool 安装包中。安装程序会自动安装所有必需的驱动,无需手动配置。几分钟内即可在 Windows 上开始监控串口。
  • COM Sniffer 支持哪些 操作系统?

    由于 COM Sniffer 是 SerialTool 安装包的一部分,它支持所有 64 位 Windows 操作系统。
  • 它能否与 USB 转串口转换器(如 RS485、RS422、RS232)或虚拟端口一起使用?

    COM Sniffer 可用于任何被 PC 识别的串口:物理或虚拟 COM 端口(包括 USB 转串口转换器)。如果该端口已在 Windows 中注册为 COM 端口,COM Sniffer 即可拦截并分析所有通过它的流量(包括 RS-232、RS-422 和 RS-485 链路),而不会改变主应用程序的行为。
    当 COM 端口被打开并开始交换数据时,监控是被动且非侵入式的:COM Sniffer 实时捕获数据包和参数,确保可靠嗅探和日志记录。
  • 如何 发送或接收数据?

    COM Sniffer 并不是串口通信程序:它不会通过 COM 端口发送或接收字节,也不会打开或控制端口。它仅处理串口流量的被动监控/嗅探和日志记录。
    若需发送和接收数据、并行打开多个端口以及高级通信功能,COM Sniffer 已集成在 SerialTool 中,由其处理所有串口操作。
  • 我可以同时监控多少个 串口?

    您可以同时监控多个串口。为确保稳定性和高效内存使用,COM Sniffer 设置了最多 32 个 COM 端口同时监控的实际限制。
  • 我能否记录、监控并嗅探 已被其他软件打开的 COM 端口?

    记录、监控并嗅探已打开 COM 端口的数据正是 COM Sniffer 的主要用途。
    当串口被其他程序使用时,COM Sniffer 会拦截并实时显示所有流量,以及配置参数(波特率、校验位、数据/停止位、RTS/DTR、超时)和底层调用(内核级 IOCTL/IRP)。这使您无需更改现有环境即可分析应用程序行为,并快速识别异常或错误。
  • 我可以监控哪些 IOCTL_SERIAL 和 IRP_MJ 信号?

    通常情况下,您可以监控 Windows 低层 ntddser.h 库中定义的所有信号,以及 IRP 主功能 (IRP_MJ) 的 READ 和 WRITE。
  • 我能否 保存 串口流量?

    您可以将所有数据保存到文件,并选择要包含的类型(例如:会话日志、读/写、转储、IOCTL)。在主界面中,您可以快速选择导出内容,并复制到剪贴板为 ASCII 或 十六进制 (HEX) 格式。
  • 我能否 分析串口流量的协议?

    使用 COM Sniffer,您可以保存并导出串口流量的负载 —— 输入 (IRP_MJ_READ) 和输出 (IRP_MJ_WRITE) —— 为 PCAP 格式,用于在 WireShark 中分析协议(例如 Modbus)。内置过滤器可让您快速隔离相关数据包,并将其发送至能够识别并解码协议的高级工具。
    这些功能非常适合应用程序开发和调试,或针对第三方软件的反向工程。
  • 为什么分析串口需要 内核驱动?

    要嗅探已打开串口上的所有流量,无法从用户空间重新打开端口。必须使用内核级过滤驱动来拦截并过滤所有发送至串口的请求和数据(IOCTL/IRP,READ/WRITE)。
    一个有效的 内核 驱动必须稳定、设计良好,并获得微软数字签名(认证/WHQL),以便安全加载到所有受支持的 Windows 版本上(兼容安全启动,启用 DSE)。
    没有内核驱动(其开发非常复杂)的应用程序无法在已使用的 COM 端口上实现相同级别的监控、嗅探和日志记录。
  • 我能使用哪些 替代方法 来记录或监控串口?

    在没有内核驱动的情况下,唯一的替代方法是物理接入 TX 和 RX 引脚来记录、监控和嗅探串口(COM)端口。实际上,您需要使用 USB 转串口转换器,并将接触点焊接(或用探针夹住)在 PCB 上。这样,借助 SerialTool 等软件,您就能看到传输的字节。
    硬件方法的局限性包括:
    • 无法观察原始软件如何使用端口:打开/关闭、波特率、校验/数据/停止位、超时、握手的动态变化。
    • 无法显示控制信号(如 RTS/DTR)或其状态变化,这些信号常用于复位或流量控制。
    • 无法显示底层调用(IOCTL/IRP),也无法展示操作系统操作的精确顺序。
    • 需要侵入式操作(焊接),可能存在硬件/保修风险,并需注意电气电平(RS-232/422/485)。
    只有内核级过滤驱动结合专用软件,才能在已打开的 COM 端口上实现准确可靠的嗅探,同时查看负载、配置参数和 IOCTL/IRP。