- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 nfqueue 的帮助下捕获了一侧的所有数据包,使用 nfq_get_payload “记录”它们(所有数据:ip 信息、下一个协议(protocol)信息等)和在 udp 的帮助下将它们传送到另一侧。我怎样才能在另一边恢复这个数据包,然后像没有 udp 封装一样发送给自己(2 边)?我应该使用一些 nfqueue API 还是必须实现所有协议(protocol)数据包创建(UDP、ICMP、TCP 等)?我应该如何发送这个恢复的数据包?
最佳答案
好的,我成功地重新创建并转发了封装在 UDP 中的数据包。重新创建后,我需要将此数据包发送到另一个 IP,但您可以使用原始目标地址。所以代码片段:
char *full_packet;
int size;
// some actions to get full_packet and size from UDP packet
// assume you recreated this: int size = nfq_get_payload(nfa, &full_packet);
int sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
// also optional string needed in my case:
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, "wlan0", strlen("wlan0"));
if (sock == -1) {
perror("socket() failed");
return 1;
}
struct sockaddr_in to;
struct ip *iph = (struct ip *)full_packet;
to.sin_addr.s_addr = inet_addr("192.168.0.107"); // here you can set IP address where you need send this packet
to.sin_family = AF_INET;
int bytes = sendto(sock, full_packet, size, 0, (struct sockaddr*) &to, sizeof(to));
if (bytes == -1) {
perror("send() failed");
return 1;
}
希望对大家有帮助
关于c++ - 重新创建并发送 nfqueue 捕获的数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34027655/
我正在编写 python 代码来与 Linux 系统上的 iptables nfqueue 交互。我能够检索队列数据包并根据需要修改它们,但是我无法通过队列接受它们。 payl
我开发了一个应用程序来检查到达 Linux 机器的数据包。我想在 NFQUEUE 中发送所有传入的连接数据包,并且只发送传入的连接数据包。不仅是 --state NEW,还有 --state ESTA
我正在尝试编写一个用户空间应用程序,该应用程序绑定(bind)到一个 NFQUEUE 套接字,内核模块将向该套接字转发传入的数据包(通过将它们标记为 NF_QUEUE)。这是通过使用 iptables
我正在尝试使用 C++ 从在 NFQueue 中排队的数据包中读取 TCP 序列号。但是当我打印出序列号时,我注意到偶尔我会得到零作为序列号。我检查了 Wireshark,但没有序列号为零。所有的序号
我在 nfqueue 的帮助下捕获了一侧的所有数据包,使用 nfq_get_payload “记录”它们(所有数据:ip 信息、下一个协议(protocol)信息等)和在 udp 的帮助下将它们传送到
我正在尝试使用从博客下载的 python 脚本在机器发出 ping 后发送假的回显回复。问题是当我运行脚本时,它给了我这个错误: File "/usr/lib/python2.7/dist-packa
我将 libnetfilter_queue 和 iptables 与 NFQUEUE 目标一起使用,通过 --queue 将传入数据包存储在三个不同的队列中-num x. 我使用libnetfilte
我尝试运行 netfilter_queue 的样本测试。当我使用 iptables 安装规则时,出现以下错误: net@net:~$ sudo iptables -A OUTPUT -p icmp -
我有 3 台机器 - A、B、C,我正在尝试做一些类似于 DNAT 的事情。 1)A向B发送数据包。 2)B收到数据包并修改后发送给C。 在机器 B 上,我使用 iptables 和 nfqueue
我正在尝试解决以下问题, 我的输出链中有一个 iptables 规则,它表示如果数据包符合特定条件,则将其排队并使用 NFQUEUE 将其发送到用户空间 用户空间程序接收到它,一旦接收到它,它检查数据
你好,我正在使用 nfqueue 和 scapy,我的目标是在我的 NFQUEUE 接收数据包,更改有效负载并重新发送它们。 我可以毫无问题地更改 TTL 等字段,但在更改有效负载时,我遇到了问题。
这就是我想要实现的目标。我有一个运行 Suricata 的内联 linux 盒子,能够丢弃数据包。这适用于将所有流量放到 NFQUEUE 0 上然后设置 suricata 监听的标准方法。 我正在编写
我刚读过 in these answers关于在 Linux 中开发数据包过滤器的两种选择。 第一个是使用 iptables 和 netfilter,可能还有 NFQUEUE 和 libnetfilt
我是一名优秀的程序员,十分优秀!