搜寻多方信息,说Tcp进SOCK_RAW发报文时,不进行“建立连接信息”记录。请教高手如何解决这一问题。
关键程序如下
1发送syn报文
sendto(sendSocket, szSendBuf,sizeof(ipHeader) + sizeof(tcpHeader),0, (struct sockaddr*)&sin, sizeof(sin))
2接收syn+ack报文,并发送ack报文
if(tcpHeader->th_flag == 18)
{
send_packet(16,0x9ec10d1f,0);
}
请教在1 2两步中间加什么样的处理可以解决系统自动发送rst消息的问题。
我想到的办法有两个。
一,反编译内核,提取connect的信息,进行分析,看怎么记录连接信息的,自己加连接信息,我晕,不太好办。
二,做个IP报文拦截器,直接过滤掉rst报文。NND太暴了:),咱是文化人,不能用这招。
请教高手如何解决,头快痛死了。
9 个解决方案
#1
非暴力,不合作
只要能实现功能需求,什么技术手段都可以用啊
只要能实现功能需求,什么技术手段都可以用啊
#2
应用层是很难解决的。
#3
破socket不用了,改主意用NDIS,呵呵。三楼说的好,不跟他较劲了。
不过做为技术分析啊,咱保留这个话题,看以后有没有高手能解开。
不过做为技术分析啊,咱保留这个话题,看以后有没有高手能解开。
#4
能解开这个问题,愿意送2000元RMB,不呼哟。:),急眼了,我就不信没人懂tcp协议栈+内核调试
#5
呵呵2000太少了。
#6
请问楼主这个问题解决了吗?
#7
我们先来分析一下为什么会发送RST吧,一般我们在书上或者资料上都是这么说的,在机器重启之后,如果这时候收到TCP报文,而在TCP没有相应的状态、序列号与之对应,就会发出一个RST。
现在我们再来看看楼主的这个例子吧,楼主的做法实际上就是绕过TCP层发送一个SYN,对端对这个SYN做出ACK响应,那么TCP层是会收到这个报文的,它做出的反应跟之前说的那个情况应该没什么差别的。
那么我们该如何防止TCP层发出RST呢?楼主所说的办法2也并非不可行。还有一种办法就是不让TCP层收到ACK响应,那么我们就可以拦截这个报文并且把它过滤掉,这种方案也是可行的。
现在我们再来看看楼主的这个例子吧,楼主的做法实际上就是绕过TCP层发送一个SYN,对端对这个SYN做出ACK响应,那么TCP层是会收到这个报文的,它做出的反应跟之前说的那个情况应该没什么差别的。
那么我们该如何防止TCP层发出RST呢?楼主所说的办法2也并非不可行。还有一种办法就是不让TCP层收到ACK响应,那么我们就可以拦截这个报文并且把它过滤掉,这种方案也是可行的。
#8
请问楼主用NDIS怎么解决啊?我碰到这个问题,折腾好久了,另外楼上说拦截报文并过滤,这个要怎么实现呢?
#9
用winpcap拦截过滤,有兴趣去官方网站下载,比较简单
#1
非暴力,不合作
只要能实现功能需求,什么技术手段都可以用啊
只要能实现功能需求,什么技术手段都可以用啊
#2
应用层是很难解决的。
#3
破socket不用了,改主意用NDIS,呵呵。三楼说的好,不跟他较劲了。
不过做为技术分析啊,咱保留这个话题,看以后有没有高手能解开。
不过做为技术分析啊,咱保留这个话题,看以后有没有高手能解开。
#4
能解开这个问题,愿意送2000元RMB,不呼哟。:),急眼了,我就不信没人懂tcp协议栈+内核调试
#5
呵呵2000太少了。
#6
请问楼主这个问题解决了吗?
#7
我们先来分析一下为什么会发送RST吧,一般我们在书上或者资料上都是这么说的,在机器重启之后,如果这时候收到TCP报文,而在TCP没有相应的状态、序列号与之对应,就会发出一个RST。
现在我们再来看看楼主的这个例子吧,楼主的做法实际上就是绕过TCP层发送一个SYN,对端对这个SYN做出ACK响应,那么TCP层是会收到这个报文的,它做出的反应跟之前说的那个情况应该没什么差别的。
那么我们该如何防止TCP层发出RST呢?楼主所说的办法2也并非不可行。还有一种办法就是不让TCP层收到ACK响应,那么我们就可以拦截这个报文并且把它过滤掉,这种方案也是可行的。
现在我们再来看看楼主的这个例子吧,楼主的做法实际上就是绕过TCP层发送一个SYN,对端对这个SYN做出ACK响应,那么TCP层是会收到这个报文的,它做出的反应跟之前说的那个情况应该没什么差别的。
那么我们该如何防止TCP层发出RST呢?楼主所说的办法2也并非不可行。还有一种办法就是不让TCP层收到ACK响应,那么我们就可以拦截这个报文并且把它过滤掉,这种方案也是可行的。
#8
请问楼主用NDIS怎么解决啊?我碰到这个问题,折腾好久了,另外楼上说拦截报文并过滤,这个要怎么实现呢?
#9
用winpcap拦截过滤,有兴趣去官方网站下载,比较简单