请教Linux内核处理ICMP_ECHO请求的问题
在linux内核中,收到ICMP_ECHO请求报文,只对报文的头部做修改
而数据部分不做修改直接反射给请求方。我想做点改动,在进行
响应处理的时候修改数据部分,将数据部分中首部的几个字节改为我
想放置的内容,但是该怎么做呢?
请方家给点指导!谢谢!
下面是内核中回显请求处理的代码:
net/ipv4/icmp.c (2.4.20-8的内核)
static void icmp_echo(struct sk_buff *skb)
{
if (!sysctl_icmp_echo_ignore_all) {
struct icmp_bxm icmp_param;
icmp_param.data.icmph=*skb->h.icmph;
icmp_param.data.icmph.type=ICMP_ECHOREPLY;
icmp_param.skb=skb;
icmp_param.offset=0;
icmp_param.data_len=skb->len;
icmp_param.head_len=sizeof(struct icmphdr);
icmp_reply(&icmp_param, skb);
}
}