【问题标题】:pcap_sendpacket dosent work on "Npcap Loopback Adapter"pcap_sendpacket 不适用于“Npcap 环回适配器”
【发布时间】:2017-07-25 07:35:45
【问题描述】:

我已经安装了支持环回接口的 npcap 驱动程序。我安装它是因为我需要将数据包注入到环回接口并从中读取它们。我可以使用“pcap_next_ex”轻松读取环回中的数据包,就像我可以在以太网接口中的 winpcap 中所做的那样,但是当我想使用“pcap_sendpacket”将数据包注入环回时,函数会返回 0(成功)。

我通过打开 wireshark 并观察传入接口的数据包来验证这一点,当我在以太网接口上使用 pcap_sendpacket 时,我可以观察数据包,但在环回中,当我尝试注入它们时它们不会出现。为什么?

//The array which contains the data of the test package

UCHAR packet[] = "\x.."; 

//loopback adapter is already opened here

for (int i = 0; i < 100; i++)
    printf("%d ", pcap_sendpacket(loopbackAdapter, packet, sizeof(packet)));

我在环回接口上使用此代码并没有工作(但 pcap_sendpacket 总是返回成功),因为在wireshark中数据包没有出现,但在以太网接口中注入成功。

npcap 是否支持环回数据包注入?

谢谢和问候!

【问题讨论】:

    标签: networking interface loopback winpcap npcap


    【解决方案1】:

    您需要了解每个网络数据包(甚至是环回数据包)都有一个方向:发送路径 (Tx) 或接收路径 (Rx)。通常,当您向Npcap Loopback Adapter 发送数据包时,您实际上是将其发送到Windows TCP/IP 堆栈的Tx 路径。当您发送 Tx 数据包时,您通常会等待 localhost 应用程序(或协议、驱动程序等)响应它们。

    我不知道你为什么要inject packets to loopback interface and read them from it。这部分 Npcap 的低级逻辑只是不让当前会话(pcap_t)接收此会话注入的数据包。但是其他会话可以看到它们,这就是为什么 Wireshark 可以看到您注入的数据包。

    我只是不知道你为什么要这样做。您似乎不希望任何其他应用程序响应这些数据包。但作为一种解决方法,我认为您可以通过将数据包注入 Rx 路径来获得所需的内容。通过向 Rx 发送数据包,意味着欺骗 Windows 相信这些数据包是从外部接收的。我不记得我是怎么实现的了,但是同一个会话应该能够在 Rx 中看到这些数据包。

    我们没有非常清楚地记录 Rx 功能。版本中只有一些描述:v0.05-r6v0.05-r7,这里有一个示例:https://github.com/hsluoyz/UserBridge。即使在最新的 Npcap 中,它们也应该可以工作。

    【讨论】:

    • 谢谢你的回答,我花了一些时间来消化。首先,作为 npcap 的开发者,我非常尊重你。我解决了我的问题,当我把这个字节放在它工作的数据包的开头时,我看不到我感染的wireshark上的数据包,因为它们没有以“null/loopback”标头(0x02000000)开头。我正在尝试在环回中做一个代理服务器,因为我在与路由器的以太网接口中这样做时遇到了问题。我必须学习很多环回......它工作得很好,谢谢伙计。
    • 伴侣现在我遇到了环回问题,我正在将数据包从以太网接口发送到本地主机中的服务器,这些数据包是 ipv4,它们来自以太网接口主机的 IP,例如 192.168。 1.145,我从 IP 源发送 SYN 数据包到 127.0.0.1 中的本地主机服务器,但我的服务器用 SYN/ACK 响应它们,他忽略了它们,本地主机只能接收来自本地主机 IP 源的数据包吗?如果是,这破坏了我的计划,因为我需要发送 IP 以在 NAT 8 中卷土重来)
    • 也许你可以在这里帮助我:networkengineering.stackexchange.com/questions/39501/…
    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多