问题标签 [libnet]
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.
c++ - 用于数据包注入的 Libnet 与原始套接字
我需要更有经验的网络程序员关于 GNU/Linux 系统上的数据包注入的一些意见/建议。我正在开发一个用于数据包注入和嗅探的开源 C++ 库。该库是libcrafter。在页面上有一些示例可以查看该库的工作原理。
我有一个两难境地,并会感谢你的想法。目前,库“提供”两种在线写入数据包的方法。首先,构造数据包:
1) 然后使用 Send() 函数发送:
2)或使用 RawSocketSend() 函数(这是我用于基准测试但可供用户使用的“实验性”函数):
其中 sd 是套接字描述符。如果数据包具有链路层协议(如以太网),则 sd 应该是 PACKET 套接字描述符。如果不是,则应该是 RAW 套接字描述符。
发送数据包的标准和记录方法是使用 Send() 方法。目前,Send() 方法使用libnet将数据包写入网络。
问题是 Send() 函数比 RawSocketSend() 慢得多......我经常不得不做很多棘手和烦人的事情来调整 libcrafter 处理协议字段的方式以正确使用 libnet_build*函数(这会导致性能损失)。每次我实现一个协议时,我都必须查看 libnet 文档,这使得开发过程变得非常乏味和缓慢。所以,我想停止使用 libnet 进行数据包注入,并在 Send() 函数中直接使用 RAW/PACKET 套接字。
Libcrafter 旨在以透明的方式为用户处理所有繁琐的数据包制作工作(校验和计算、字节排序、标头长度等)。在使用 RAW/PACKET 套接字(RawSocketSend 函数)的最流行的 GNU/Linux 系统(Ubuntu、Fedora、Debian)上一切正常。
我使用 libnet 的唯一原因是出于可移植性问题。但是我没有将 libcrafter 移植到其他系统而不是 GNU/Linux 系统的知识或意图。
我的问题是:
- 在 GNU/Linux 的数据包注入库上使用 RAW/PACKET 套接字是否谨慎且安全?
- 如果我决定停止使用 libnet,您是否知道关于 GNU/Linux 发行版之间的 RAW/PACKET 套接字的可移植性我应该考虑的一些问题?
- RAW/PACKET 套接字接口可能会在未来的内核版本中发生变化?
非常感谢 :-)
ruby - 使用 libnet4r 或类似 gem 进行 Ruby 网络编程
请我需要特定的 gem 来控制我的数据包并允许我制作 tcp 数据包(构建和注入 tcp 数据包)。
实际上,libnet4r正在做我所需要的,但似乎不再与 ruby 1.9.x 一起使用,那么是否有任何更新它的新名称或类似的 gem 做这个 lib 的相同工作?
c - Libnet 基本使用
我一直在查看 libnet 提供的示例源,但是,我不清楚如何处理以下内容。
这似乎是一个 tcp 标头结构,但是,如果我想更改 dst 端口,我应该在 #179 处进行,还是有更好的方法?
另外,这是编译的正确方法吗:
gcc -Wall libnet-config --defines
arp-new-new.c libnet-config --libs
-lpcap -lnet
pcap - libnids 是否有维护的替代方案?
由于libnids似乎已有两年历史并且没有当前更新,是否有人知道 libnids 的任何替代解决方案或比它更好的库,因为它似乎以超过 1G/每秒的速度丢弃数据包
而且它不支持 64 位 IP 地址。
clang - Libnet11 手动构建 IPv6 数据包
我正在尝试使用Libnet11功能:
在网络层注入 IPv6 数据包。我创建了 IPv6 数据包并使用 Wireshark 捕获它。Wireshark 报告: 格式错误的数据包(wireshark 说 IPv6 中的下一个标头值是错误的,并且我认为有效负载大小太大)
我希望有人可以通过最少的代码示例帮助我,展示如何使用 libnet11 (libnet_write_raw_ipv6()) 手动构建 IPv6 数据包(带有 ICMPv6 扩展标头)。
我假设最小的代码可能如下所示:
我试图找到代码示例但没有成功。先感谢您。
马丁
send - 使用 libnet 在 C 中创建 arp 数据包
我想知道创建框架后如何发送框架。
我有下一个:
int arp_send(libnet_t *l, int op, u_char *sha, in_addr_t spa, u_char *tha, in_addr_t tpa) {
libnet_ptag_t t;
}
我在网上找到了该代码,它从无到有创建了一个 arp 数据包。除了返回之外,我确实了解所有内容,因为我没有找到“发送”命令。
谢谢你。
c - 如何将 libnet 与 cmake(和 kdevelop)一起使用?
恐怕我的问题可能很愚蠢,但由于我是 kdevelop 和 cmake 的新手,所以我很难理解它们是如何工作的。我尝试设置的项目使用 libnet 1.1 库。我的问题是如何让 cmake 编译和链接这个库,以便我可以正确使用它?
这是我已经尝试过的:
谢谢您的帮助!
c - 如何在 ubuntu 12.04 下为 libnet 安装手册页
命令 sudo apt-get install libnet1-doc 没有任何效果,有人知道这样做吗?
windows - how to compile libnet for python 2.7 on windows
I have python 2.7 on windows xp, I need libnet but it's not supported for python 2.7 . I tried to compile it using cygwin, as I don't use python on cygwin gnu and I could not compile it using mingw32, is there any way to install mingw32 in the gnu of cygwin. I read some about VC compile but I totally didn't understand. I need it for w3af framework[which need scapy [which need libnet - and python 2.7]] trying to make w3af framework run on windows [because it is not supported anymore on win]
linux - 如何安装 libnetfilter?
我运行了以下命令
然后我得到以下结果
我搜索了 libnetfilter_queue rpm,当我尝试运行 rpm 时,我也遇到了错误
我的机器是我的意思是uname -a
我机器上的结果是
请帮我安装 libnetfilter。提前致谢