【问题标题】:listening to communication between a local application and a device监听本地应用程序和设备之间的通信
【发布时间】:2013-02-13 19:32:46
【问题描述】:

我的 PC 上有一个 Windows 应用程序,它通过 telnet 连接到设备。它向设备发送一系列命令,设备对其作出响应。

有什么方法可以让我听到该程序正在写入设备的内容吗?

我尝试使用 win32 套接字编程来创建连接到应用程序的客户端。但是,我收到一条错误消息,提示连接被拒绝。当我在wireshark上分析应用程序和设备之间的流量时,我可以看到应用程序每次读取或写入设备的telnet端口(23)时使用不同的端口。

有什么方法可以读取程序发送给设备的命令?

【问题讨论】:

  • 如果您“关注 tcp 流”,您应该会在 wireshark 中看到命令。客户端的端口只是一个随机端口,由系统分配,因为应用程序不关心源端口。
  • 可以看到wireshark中的命令。但是我需要在运行时将这些相同的命令并通过不同的接口复制到另一台设备。我无权访问发送这些命令的应用程序的源代码。
  • “复制相同的命令”,如“将完全相同的命令流复制到另一台设备”,或“对命令的格式和参数进行逆向工程,以便能够发送您自己的命令”随时”?两种情况都有答案,但它们是不同的。
  • 您的客户端是在 TCP 连接阶段还是在连接建立后中止?
  • @Anton:我想复制完全相同的命令

标签: c windows sockets


【解决方案1】:

如果您想将程序的输出捕获到设备 以编程方式,正确的方法是不连接到程序(你 无法接入现有连接),而是提供一个服务器 从程序的角度来看,这将代表目标设备。

如果程序可以配置为连接到 设备在不同的地址和端口。编写一个监听的“代理” 一些固定端口,对于任何接受的连接,打开一个客户端 连接到真实设备。然后它应该在两者中转发数据 程序接受的连接与 客户端连接到设备。在此期间,您还可以解析数据 或者对他们做任何你想做的事情,例如将它们转发给另一个 连接到另一个真实设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2011-08-06
    相关资源
    最近更新 更多