问题标签 [libpcap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - OSX 上的 libpcap - 尝试使用统计模式
我正在尝试编译一个在 OSX 上以统计模式使用 libpcap 的 C 程序。原始代码是使用 winpcap 库为 Windows 编写的。我 Mac 上的 libpcap 版本从未听说过它使用的pcap_setmode函数——我有一种讨厌的感觉,它可能是特定于 Windows 的。
有什么方法可以在 OSX 上以统计模式捕获?如果没有,操作系统的体系结构/功能是否会阻止这种情况,或者这是添加到 WinPcap 的额外功能,而这从来不是主库的功能?
c++ - WinPcap - LibPcap - packet_handler 通知
我在 C 中使用 libpcap(Windows 数据包捕获库)。
我想知道是否可以在packet_handler
调用函数之前通知我。packet_handler
每次收到数据包时都会调用现在。
任何建议我如何监控数据包何时停止传入并中断 10 秒。我只需要知道‘嘿,我们又开始发送数据包了——重置你的设置或其他什么’
pcap - libpcap 中的 pcap_t *pcap_open_offline(const char *fname, char *errbuf) 是否将整个 pcap 文件读入内存?
做
从 libpcap 将整个 pcap 文件读入内存?如果不是这样,我必须使用 tcpslice 或类似的工具来拆分 pcap 文件吗?
谢谢。
c++ - 如何编写 PCAP 捕获文件头?
在不使用 libpcap 的情况下,我试图编写一个符合 pcap 文件格式(format)的日志文件。这个文件需要被 WireShark 读取。到目前为止,我已经用 C++ 编写了这个:
所以这应该是一个空白的捕获文件,但是当我在 Wireshark 中打开它时,我会看到:
文件“hello.pcap”似乎在数据包或其他数据的中间被缩短了。
我试过以二进制模式打开输出文件,但这没有帮助。我会在 WireShark 论坛上发布这个,但我认为这是用户错误,而不是 WireShark 的问题。
帮助将不胜感激。
python - Python 中的 URL 嗅探
有谁知道如何在 Python 中编写一个实时数据嗅探器来提取原始 IP 地址和正在访问的完整 URL?我已经查看了从 urlsnarf 中提取数据,但是不支持 IPv6(并且连接将指向 IPv6 主机)。
虽然我可以从 tcpdump 和 greping 获取数据以获取 GET/POST,但我只剩下网络服务器上的路径,而且我不会获得相关的 FQDN。不幸的是,由于环境的配置,使用带 IPv6 TPROXY 的 SQUID 不是一个选项。
有人对如何使用 Python 绑定 libpcap 有任何想法吗?您的帮助将不胜感激:)
谢谢 :)
android - 使用适用于 android 的 ndk 工具链编译的 libpcap 静态链接错误
我已经使用 Git 和 repo 从 android 源代码下载了外部文件夹中的 libpcap。我使用 ndk (android-ndk-r5b) 的工具包按照以下步骤编译库:
./configure --prefix=path-to-android-src/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin make clean make make install
然后生成一个文件 libpcap.a。
我使用 libpcap (sniffer.c) 做了一个简单的嗅探器。当我尝试编译它时,会出现以下错误:agcc sniffer.c libpcap.a
当我尝试提前生成目标代码时:agcc -c sniffer.o sniffer.c 发生了同样的错误。
有人可以解释我如何解决这个问题吗?
这是我在 bashrc 文件中使用的 agcc 的别名:./configure --prefix=/home/petsas/projects/mobile-attacks/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/
此外,我还附上了一个包含上述命令输出的文件:configure、make 和 make install。
(我将错误放在代码样式中,因为存在对齐错误)
先感谢您!
- 更新 -
我使用选项 -I 和 -L 来指定包含和库文件,现在这些错误都消失了。
这是我的新错误日志:
有任何想法吗?
android - Android NDK:使用 libpcap for Android 编译错误 - 函数“未在此范围内声明”
我正在尝试将 Jnetpcap(带有 JNI 的 libpcap 的 java 包装器)移植到 Android。我已经设法使用此存储库中的源代码将 libpcap 编译为静态库:https ://github.com/android/platform_external_libpcap并且我获得了 libpcap.a
当尝试将 Jnetpcap 编译为共享库(并与 libpcap.a 链接)时,我遇到了错误,因为某些 libpcap 的函数“未在此范围内声明”。这些函数是:pcap_create()、pcap_activate()、pcap_can_set_rfmon()、pcap_set_buffer_size()、pcap_set_promisc()、pcap_set_snaplen() 和 pcap_set_timeout()。
这些函数存在于 libpcap 的原始版本(包 libpcap-dev 提供的那个)中,但似乎 android 的版本没有它们。Jnetpcap 的相同源文件可以毫无问题地编译用于 intel x86 和 x64 平台。
难道我做错了什么?这些功能真的缺失了吗?
我希望你们中的任何人都知道如何解决这个问题。谢谢。
c - 内存 C 中的 IP 查找表
我目前正在尝试使用 libpcap 和各种 C 应用程序,并尝试完成以下工作。在程序初始化时,我想从文件中加载 IP 并将它们存储在内存中。当我收到一些要处理的数据包详细信息时,我想将一个 IP 与加载到内存中的一组 IP 进行比较。
在 C 中实现这一点的最佳方式/数据结构是什么?我需要适应列表增长和高效匹配,所以我觉得一个简单的查找数组将是一个错误的解决方案。帮助?
linux - 监控模式接口上的 tcpdump - 未捕获任何内容
我一直在使用 tcpdump(版本 4.1.1)尝试从airmon-ng设置的监控模式接口捕获无线帧。我说“尝试”是因为到目前为止还没有发生任何事情。这很奇怪:
tcpdump -i mon0
上面的命令工作正常。我看到所有的信标和探测请求以及所有其他可以想象的帧都显示在我的屏幕上。但是,当我尝试使用将输出写入捕获文件时
tcpdump -i mon0 -w captures.cap
绝对没有任何东西被捕获,包括包含实际数据的第 3 层数据包。当我杀死 tcpdump 时,它给了我
13507 packets captured
13507 packets received by filter
0 packets dropped by kernel
(在这种情况下,13507 是一个任意数字)和一个完全空的捕获文件。
但是,当我在同一界面上使用 tshark 或 wireshark 执行捕获时,帧被捕获到文件中没有任何问题。
我更喜欢使用 tcpdump 而不是 wireshark,因为它没有 GUI 的开销,并且它具有“-z”选项,允许我获取捕获文件并将其传递给 shell 脚本,该脚本将其复制到另一台计算机在我的网络上。tshark 或 wireshark 没有类似的功能,我非常想避免编写程序来检查捕获文件的存在。
我对 tcpdump 的工作方式有根本的误解,还是这里肯定发生了一些奇怪的事情?是否有更好的方法来做我正在做的事情,或者我将不得不编写自己的基于 libpcap 的捕获程序?
libpcap - libpcap 函数有问题?
编译时:
libpcap
图书馆的其他功能也会发生这种情况。你能向我解释一下这个问题以及纠正它的方法吗?提前致谢...