gpt4 book ai didi

c - 如果我使用 libnetfilter_queue 对其进行更改,网络数据包将被拒绝

转载 作者:太空狗 更新时间:2023-10-29 11:38:51 26 4
gpt4 key购买 nike

我正在使用 iptables 队列捕获一些数据包,并在 libnetfilter_queue 模块中分析它们,现在我希望对数据包进行一些更改,但即使我更改单个字符,数据包也可能被拒绝,同时检查校验和!有什么方法可以防止它被拒绝:

static int callBack(struct nfq_q_handle *qh, struct nfgenmsg *nfmsg,struct nfq_data *nfa, void *data)
{
int len=0,id=0;
char *pktData;
string pktString;
struct nfqnl_msg_packet_hdr *pktHeader;
pktHeader = nfq_get_msg_packet_hdr(nfa);
if (pktHeader)
{
id = ntohl(pktHeader->packet_id);
}
len = nfq_get_payload(nfa, &pktData);
if(len)
{
int pos;
pktString.assign(pktData,len);
pos=pktString.find("oldstring",0);
if(pos>0)
{
pktString.replace(pos,9,"newstring");
unsigned char* newPktData=(unsigned char*)pktString.c_str();
len=pktString.size();
return nfq_set_verdict(qh, id, NF_ACCEPT,len,newPktData);
}
}
return nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
}

最佳答案

如果您更改任何内容,您必须更新校验和以防止被拒绝,否则数据包将被视为已损坏...
编辑:假设您正在处理 IP 数据包,以上内容仅适用于 IP header 中的更改,因为只有 header 而非有效负载受到 IP 校验和的“保护”。

关于c - 如果我使用 libnetfilter_queue 对其进行更改,网络数据包将被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12857513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com