[13024] 2018-08-05_一个FreeBSD下的通信协议监控程序

文档创建者:s7ckTeam
浏览次数:5
最后更新:2025-01-18
2018-08-05_一个FreeBSD下的通信协议监控程序 F r e e B S D   r o c h e k   F r e e B u f   2 0 1 8 - 0 8 - 0 5 h o o k F r e e B S D 1 1 使 使 使 B L O G B L O G 使 H u x G i t h u b   p a g e s 使 d m e s g U D P T C P I C M P 1 .   F r e e B S D p r o t o s w I C M P T C P U D P {         . p r _ t y p e   =                 S O C K _ R A W ,         . p r _ d o m a i n   =                 & i n e t d o m a i n ,         . p r _ p r o t o c o l   =                 I P P R O T O _ I C M P ,         . p r _ f l a g s   =                 P R _ A T O M I C | P R _ A D D R | P R _ L A S T H D R ,         . p r _ i n p u t   =                 i c m p _ i n p u t ,         . p r _ c t l o u t p u t   =                 r i p _ c t l o u t p u t ,         . p r _ u s r r e q s   =                 & r i p _ u s r r e q s } , {         . p r _ t y p e   =                 S O C K _ S T R E A M ,         . p r _ d o m a i n   =                 & i n e t d o m a i n ,         . p r _ p r o t o c o l   =                 I P P R O T O _ T C P ,         . p r _ f l a g s   =                 P R _ C O N N R E Q U I R E D | P R _ I M P L O P C L | P R _ W A N T R C V D ,         . p r _ i n p u t   =                 t c p _ i n p u t ,         . p r _ c t l i n p u t   =                 t c p _ c t l i n p u t ,         . p r _ c t l o u t p u t   =                 t c p _ c t l o u t p u t ,         . p r _ i n i t   =                 t c p _ i n i t ,         . p r _ s l o w t i m o   =                 t c p _ s l o w t i m o ,         . p r _ d r a i n   =                 t c p _ d r a i n ,         . p r _ u s r r e q s   =                 & t c p _ u s r r e q s } ,
m b u f p r _ i n p u t p r _ i n p u t p r _ i n p u t 2 .   h o o k h o o k 使 U D P u d p _ i n p u t _ h o o k ( ) m b u f U D P U D P U D P I P U D P U D P U D P i p {         . p r _ t y p e   =                   S O C K _ D G R A M ,         . p r _ d o m a i n   =                   & i n e t d o m a i n ,         . p r _ p r o t o c o l   =                   I P P R O T O _ U D P ,         . p r _ f l a g s   =                   P R _ A T O M I C | P R _ A D D R ,         . p r _ i n p u t   =                   u d p _ i n p u t ,         . p r _ c t l i n p u t   =                   u d p _ c t l i n p u t ,         . p r _ c t l o u t p u t   =           i p _ c t l o u t p u t ,         . p r _ i n i t   =                   u d p _ i n i t ,         . p r _ u s r r e q s   =                   & u d p _ u s r r e q s } , c a s e   M O D _ L O A D :                 / *   R e p l a c e   u d p _ i n p u t   w i t h   u d p _ i n p u t _ h o o k .   * /                 i n e t s w [ i p _ p r o t o x [ I P P R O T O _ U D P ] ] . p r _ i n p u t   =   u d p _ i n p u t _ h o o k ;                 b r e a k ; i n t u d p _ i n p u t _ h o o k ( s t r u c t   m b u f   * * m p ,   i n t   * o f f p ,   i n t   p r o t o ) ; i f   ( i p h l e n   >   s i z e o f   ( s t r u c t   i p ) )   {         i p _ s t r i p o p t i o n s ( m ) ;         i p h l e n   =   s i z e o f ( s t r u c t   i p ) ; } i p   =   m t o d ( m ,   s t r u c t   i p   * ) ; i f   ( m - > m _ l e n   <   i p h l e n   +   s i z e o f ( s t r u c t   u d p h d r ) )   {         i f   ( ( m   =   m _ p u l l u p ( m ,   i p h l e n   +   s i z e o f ( s t r u c t   u d p h d r ) ) )   = =   N U L L )   {                 U D P S T A T _ I N C ( u d p s _ h d r o p s ) ;                 r e t u r n   ( I P P R O T O _ D O N E ) ;         }         i p   =   m t o d ( m ,   s t r u c t   i p   * ) ; } u h   =   ( s t r u c t   u d p h d r   * ) ( ( c a d d r _ t ) i p   +   i p h l e n ) ; m - > m _ l e n   - =   i p h l e n   +   s i z e o f ( s t r u c t   u d p h d r ) ; m - > m _ d a t a   + =   i p h l e n   +   s i z e o f ( s t r u c t   u d p h d r ) ;
m _ d a t a U D P U D P d m e s g h o o k m b u f U D P m b u f p r _ i n p u t h o o k h o o k r e c i v e _ f r o m ( ) U D P r o c h e k   F r e e B u f   p r i n t f ( " l o a d = % s   n " ,   m - > m _ d a t a ) ; m - > m _ l e n   + =   i p h l e n   +   s i z e o f ( s t r u c t   u d p h d r ) ; m - > m _ d a t a   - =   i p h l e n   +   s i z e o f ( s t r u c t   u d p h d r ) ; r e t u r n   u d p _ i n p u t ( m p ,   o f f p ,   p r o t o ) ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则