发新话题
打印

i don't know

i don't know

ip=(struct ip *)buffer;  
ip->ip_v=IPVERSION; /** 版本一般的是 4 **/  
ip->ip_hl=sizeof(struct ip)>>2; /** IP数据包的头部长度 **/  
ip->ip_tos=0; /** 服务类型 **/  
ip->ip_len=htons(head_len); /** IP数据包的总长度(头+数据) **/  
ip->ip_id=0; /** 让系统去填写吧 **/  
ip->ip_off=0; /** 和上面一样,省点时间 **/  
ip->ip_ttl=MAXTTL; /** 最长的时间 255 **/  
ip->ip_p=IPPROTO_TCP; /** 我们要发的是 TCP包 **/  
ip->ip_sum=0; /** 校验和让系统去做 **/  
ip->ip_dst=addr->sin_addr; /** 我们攻击的对象 **/  

其中,ip->ip_hl那一句为什么要是sizeof(struct ip)>>2而不是sizeof(struct ip)?      

TOP

他这里伪造的是一包头呀。并没有包内容。所以就是这个了。


你没有理解ip->ip_hl的定义,包头的大小,(以四元组计算)不是包的大小。      

TOP

我想知道该结构定义的详细解释,哪里有相关资料?      

TOP

任何一本TCP/IP的书都有,具体结构定义见/usr/include/net/ip.h      

TOP

thank      

TOP

发新话题