Chinaunix
标题:
libipq捕获数据包然后修改在发送出去出现问题
[打印本页]
作者:
jajaa
时间:
2009-07-12 10:51
标题:
libipq捕获数据包然后修改在发送出去出现问题
利用iptables 的一些命令,过程如下:
#modprobe iptable-filter
#modprobe ip_queue
#iptables –A forward –p tcp –j QUEUE
先说一下,我的目的是捕获数据包后修改一些数据包的内容,然后重新放回去,但是在实际的项目中用tcpdump发现包还是原样的发出去了,好像我没有做这个改数据包的操作,
请教一下这个现象的原因和如何来解决这个问题,谢谢了
除了校验和,还有其他的原因么?
启动应用程序,贴一段代码如下:
ipq_packet_msg_t *m;
u_int8_t length;
int count;
m=getPacket(&status);//获得数据包,我也做了次封装,
length==m->data_len;
attr = (unsigned char*)(m->payload +48);
count=length-48;
while(count>0)
{
if (*attr== 8)
{
*attr=0;
}
attr++;
count--;
}
int ret=setResult(m,1,errbuf);//将数据包重新注入内核,1表示NF_ACCEPT,我已经做了封装。
复制代码
[
本帖最后由 jajaa 于 2009-7-12 10:55 编辑
]
作者:
emmoblin
时间:
2009-07-12 21:35
你的程序是否已经跟踪到了发包处?
作者:
jajaa
时间:
2009-07-12 23:18
标题:
回复 #2 emmoblin 的帖子
请问什么意思?
A 发送数据包到C,经过B,B有两块网卡,然后B上跑了这个程序,包是可以抓到的,但是发现我修改这个数据包后,C仍然能收到,但是受到的数据包并没有任何改变,好像B的操作没有一样。。。。。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2