首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pcap_handler回调仅在使用npcap v0.9991时包含空包

pcap_handler回调仅在使用npcap v0.9991时包含空包
EN

Stack Overflow用户
提问于 2020-06-24 20:50:16
回答 1查看 51关注 0票数 0

我有一些从以太网适配器捕获数据的代码。我使用以下步骤来获取数据(在确定设备名称后,格式为"rpcap://\ device \NPF_{0C5...C89}"):

代码语言:javascript
复制
deviceHandle = pcap_open(device_name, 65536, 1 /* promiscous */, 100, NULL, errbuf)

然后运行一个循环(直到捕获被停止为止):

代码语言:javascript
复制
pcap_dispatch(deviceHandle, -1, pcap_handler, userHandle /* unsigned char* to user handle */)

当使用从WindowsSystem32\ npcap文件夹加载的Npcap dll "wpcap.dll“运行此命令时,我收到对pcap_handler回调的调用,但回调中的所有参数始终为零:

代码语言:javascript
复制
header->caplen == 0
header->len == 0
header->ts.tv_sec == 0
header->ts.tv_usec == 0

unsigned char*数据不为空,但它所指向的内存仅为零。

当我仅使用"Program Files (x86)\ Win10Pcap \x64“(当前最新版本)中的Win10Pcap v10.2.5002 wpcap.dll运行完全相同的代码时,一切工作正常,并且我正确地获得了捕获的数据。代码在大约一年前就可以工作了,所以可能对npcap进行了一些更改,导致了行为的不同,但我找不到为什么在回调中没有提供数据。

npcap安装和dll是Wireshark v3.2.4 64位安装的一部分,当运行Wireshark并在同一以太网适配器上捕获数据时,数据在Wireshark中正确显示,因此npcap库在该情况下工作正常。

谁能给我一个提示,问题可能出在哪里?我在64位Windows 10上运行代码。因为它以前是有效的,所以npcap v0.9991中可能有一个更改,它改变了行为或要求,以获取捕获的数据,但我不知道是哪个导致了问题。

致以最好的问候,冈纳

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-01 10:27:23

这可能是Npcap issue #178,它已经在Npcap 0.9992中修复了,所以它也应该在当前版本中得到修复(在我写这篇文章的时候是0.9994)。升级您的Npcap安装。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62555449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档