linux netfilter queue 修改数据包,在netfilter模块中重新注入修改的数据包

我已经使用netfiler_queue为iptables创建了一个NFQUEUE模块,该模块处理所有出站的UDP数据包。在netfilter模块中重新注入修改的数据包

我想修改所有匹配特定模式的UDP数据包,并将它们重新输入到网络中。

下面是一些示例代码:

...

static int Callback(nfq_q_handle *myQueue, struct nfgenmsg *msg, nfq_data *pkt, void *cbData) {

uint32_t id = 0;

nfqnl_msg_packet_hdr *header;

if ((header = nfq_get_msg_packet_hdr(pkt))) {

id = ntohl(header->packet_id);

}

// Get the packet payload

unsigned char *pktData;

int len = nfq_get_payload(pkt, &pktData);

// The following is an example.

// In reality, it involves more parsing of the packet payload.

if (len && pktData[40] == 'X') {

// Modify byte 40

pktData[40] = 'Y';

}

// Pass through the (modified) packet.

return nfq_set_verdict(myQueue, id, NF_ACCEPT, 0, NULL);

}

...

int main(){

...

struct nfq_handle nfqHandle;

nfq_create_queue(nfqHandle, 0, &Callback, NULL)

...

return 0;

}

修改的数据包并没有得到重新注入流。我将如何注入数据包的修改版本?

2015-05-09

Excl

+0

示例代码纯粹是一个示例,将其视为伪代码。 –

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值