- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我试图创建自己的嗅探器(仅供娱乐),并且我在 Mac 上工作。我正在使用 libpcap,这是一个非常好的嗅探库。所以,我使用了这个简单的嗅探器,它嗅探了 5 个数据包:(它是用 C 编写的)
#include <pcap.h>
#include "hacking.h"
void pcap_fatal(const char *failed_in, const char *errbuf) {
printf("Fatal Error in %s: %s\n", failed_in, errbuf);
exit(1);
}
int main() {
struct pcap_pkthdr header;
const u_char *packet;
char errbuf[PCAP_ERRBUF_SIZE];
char *device;
pcap_t *pcap_handle;
int i;
device = pcap_lookupdev(errbuf);
if(device == NULL)
pcap_fatal("pcap_lookupdev", errbuf);
printf("Sniffing on device %s\n", device);
pcap_handle = pcap_open_live(device, 4096, 1, 0, errbuf);
if(pcap_handle == NULL)
pcap_fatal("pcap_open_live", errbuf);
for(i=0; i < 5; i++) {
packet = pcap_next(pcap_handle, &header);
printf("Got a %d byte packet\n", header.len);
dump(packet, header.len);
}
pcap_close(pcap_handle);
}
如果您想知道,是的,我是从一本书(黑客:剥削的艺术)中摘录的并稍作修改。问题是,如果我在 Linux 上运行它,它可以完美运行,没有问题。但如果我在 Mac 上运行它,它就无法工作,也不会捕获任何数据包。
你们有人可以帮忙吗?提前致谢!
最佳答案
如果您收到“pcap_lookupdev 中的 fatal error ”错误消息,那么问题就是 Sascha 所说的 - 您没有捕获数据包的权限。 如果您收到该消息,请尝试使用 sudo
运行该程序,或者尝试将/dev/bpf* 设备的所有权更改为您(这您将需要使用 sudo
)。但是,您说的是“它在‘en0’上嗅探”,所以您大概是在说因为它正在打印“在设备 en0 上嗅探”,在这种情况下 pcap_lookupdev()
不会失败.
如果您遇到“pcap_open_live 中的 fatal error ”,那可能也是权限问题,但您几乎肯定不会因为那里的权限而出现错误,因为 pcap_lookupdev()
已经失败了。
如果您没有收到“ fatal error ”错误消息,正如 Petesh 指出的那样,问题可能是您将超时指定为 0。如果超时指定为 0,则 pcap_loop()
、pcap_dispatch()
、pcap_next()
和 pcap_next_ex()
在向应用程序提供数据包之前可以无限期地等待;在一些平台上,比如 Linux 和 Solaris,它不会无限期地等待,但在其他平台上,比如 *BSD 和 OS X,它可以无限期地等待。尝试超时1000,也就是一秒;例如,这就是 tcpdump 所做的。
关于c - 在 C 语言的 Mac OS X 上使用 libpcap 进行嗅探,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15039551/
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
几年来,我一直在使用 apache2 开发和运行一个小型网站,大约每天一次,我的错误日志中充斥着对与 PHPMyAdmin 相关的不存在文件的请求。我的站点不使用 PHP,尽管有一个事件的 MySQL
我试图理解 via forensics 对此 page 所做的声明: When an activity is started by another application using a Broadc
我一直在寻找关于制作小型网络嗅探器和 found this one 的最直接的教程.我跟着它,但建议嗅探数据包的方法是: sock_raw = socket( AF_PACKET , SOCK_RAW
scapy嗅探时如何识别SSL数据包? 我知道 SSL 数据包通过端口 443,我可以假设所有通过端口 443 的 TCP 数据包都是 SSL 数据包吗? 最佳答案 其他人已经添加了对 SSL/TLS
我使用 scapy 编写了一个 python 脚本来嗅探我的 WIFI 网络中的 TCP 数据包,并查看两个目的地之间是否存在连接。如果我在不处于监控模式下时嗅探数据包,它会工作,但是当我在监控模式接
我有一个疑问:嗅探和转发有什么区别。 我的意思是当我处于中间人位置(客户端的网关)时,我可以用这个客户端浏览器访问所有的HTTPS网站。此外,我还可以检查网关端生成的流量(包括 HTTPS 请求/应答
我正在尝试确定如何最好地加载/浸泡测试我被分配测试的系统。我正在运行 Ubuntu 11.04,并想确定从我的 Web 浏览器发出的请求数量、频率和类型,这些请求指向开发团队正在开发的新应用程序,以确
我想监控在 Android 系统中运行的所有 Intent。 我在以下链接中找到了一个开源应用程序 IntentSniffer。 https://www.isecpartners.com/tools/
问题陈述 调用pcap_activate()结果 PCAP_ERR_RFMON_NOTSUP错误,即不支持射频监控模式。 上下文 我正在编写小型 C 程序,其工作是在监听模式下监听笔记本电脑的 wif
有没有办法嗅探发送到任何级别(高于传输级别)的 SQL Server 数据库的 SQL 查询?也许 ASP.NET 中有某种跟踪器,或者 SQL Server 中有内置日志? 最佳答案 也许是 SQL
运行此脚本时出现错误: from scapy.all import * sn = sniff(filter="http", count=30) wireshark(sn) 这是错误: WARNING:
我是 QWebsocket 的新手。我创建了两个应用程序,它们使用 QWebsocket 通信。有谁知道是否可以通过同一端口上的另一个应用程序捕获从 webClient 发送到 webServer 的
有谁知道如何用 Python 编写实时数据嗅探器来提取原始 IP 地址和被访问的完整 URL?我看过从 urlsnarf 中提取数据,但是不支持 IPv6(并且连接将连接到 IPv6 主机)。 虽然我
我最近购买了通过蓝牙与安卓手机/平板电脑连接的中国设备。由于没有适用于 windows/linux 的应用程序,我想创建一个供个人使用。 通常手机会连接到设备并交换一些数据。我将 PC 连接到设备并查
我目前正在为我的图形类指定项目,我正在考虑编写一个应用程序来显示 midi 数据的可视化工具。我想做的是在通过系统时嗅探 MIDI 数据。我不想劫持驱动程序,只想观察数据流逝(也就是说,我希望 MID
我正在尝试通过使用 NKE 制作 KEXT 来读取 http 请求和响应。我注册了一个套接字过滤器,每当我获取数据时,我都会使用如下代码打印 mbuf: unsigned char *dataStri
我正在尝试通过使用 NKE 制作 KEXT 来读取 http 请求和响应。我注册了一个套接字过滤器,每当我获取数据时,我都会使用如下代码打印 mbuf: unsigned char *dataStri
这个问题可能很奇怪,但假设我们有一个 Canvas ,例如可以绘制一些 3D 内容,如 experiment . 不管使用 ThreeJS、Babylon 或任何其他库来达到相同的效果,是否可以设置一
该 url 由最终用户在我的页面上作为字符串输入,因此可能指向任何域。 当前页面中的 JavaScript 需要嗅探 url,验证它是否仍然有效,并返回图像、视频或音频等类型,甚至考虑 html5 视
我是一名优秀的程序员,十分优秀!