Snort之Stream5ProcessTcp()



int Stream5ProcessTcp(Packet *p,Stream5LWSession *lwssn,

                     Stream5TcpPolicy*s5TcpPolicy, SessionKey *skey)

   Packet *p  新抓到的包

   Stream5LWSession *lwssn包所在的流

   Stream5TcpPolicy *s5TcpPolicy流的规则参数,如最大字节数,段数,超时时间

   SessionKey *skey流的键值

 

如果流存在,但是标志位(SSNFLAG_DROP_CLIENT|SSNFLAG_DROP_SERVER),则丢弃该包;

如果规则不存在,则为流建立规则;

 

//segment 1流的建立

如果流为空

   {

       如果规则为三次握手

       {

            如果(SYN标志,没有ACK标志)

            {

               建立新的lwssn

            }

            else

            {

               判断是否超时,没有超时则进入标志midstream_pickup_allowed:

               超时了,就丢弃该包;

            }

       }

       else //此处流还是空的

        midstream_pickup_allowed:

        {

            如果(SYN,ACK),就建立流;

            如果(包的数据 > 0), 就建立流;

            如果(TF_WSCALE标志,,SYN),就建立流;

            其他情况不做处理

        }

        如果到此处流没建立,该包的处理就退出该函数;

   }

   else

   {

        有流存在,只打印一下log,流后续接下来会处理

   }

//segment 2,流的处理

   如果流的状态为超时,或者该包的时间戳大于流的超时时间

   {

        如果流的状态,SSNFLAG_RESET

        {

            清空该流,进行命中处理

             ProcessTcp();

        }

        else其他情况

        {

            清空该流,进行命中处理

            ProcessTcp()

        }

     } 

     else//

     {

        ProcessTcp();

     }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值