[16426] 2021-02-11_Fuzz的基本框架结构

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-18
2021-02-11_Fuzz的基本框架结构 F u z z C r o w n _ f o r e v e r   F r e e B u f   2 0 2 1 - 0 2 - 1 1 F u z z e r R u n n e r 使 F u z z P y t h o n R u n n e r R u n n e r 使 R u n n e r r u n i n p u t i n p u t r u n r e s u l t o u t c o m e r e s u l t r u n r u n o u t c o m e R u n n e r P r i n t R u n n e r R u n n e r R u n n e r . P A S S R u n n e r . F A I L R u n n e r . U N R E S O L V E D c l a s s   R u n n e r ( o b j e c t ) :         #   T e s t   o u t c o m e s         P A S S   =   " P A S S "         F A I L   =   " F A I L "         U N R E S O L V E D   =   " U N R E S O L V E D "         d e f   _ _ i n i t _ _ ( s e l f ) :                 " " " I n i t i a l i z e " " "                 p a s s         d e f   r u n ( s e l f ,   i n p ) :                 " " " R u n   t h e   r u n n e r   w i t h   t h e   g i v e n   i n p u t " " "                 r e t u r n   ( i n p ,   R u n n e r . U N R E S O L V E D ) c l a s s   P r i n t R u n n e r ( R u n n e r ) :         d e f   r u n ( s e l f ,   i n p ) :                 " " " P r i n t   t h e   g i v e n   i n p u t " " "                 p r i n t ( i n p )                 r e t u r n   ( i n p ,   R u n n e r . U N R E S O L V E D ) p   =   P r i n t R u n n e r ( ) ( r e s u l t ,   o u t c o m e )   =   p . r u n ( " S o m e   i n p u t " ) r e s u l t ' S o m e   i n p u t ' o u t c o m e ' U N R E S O L V E D ' P r o g r a m R u n n e r c l a s s   P r o g r a m R u n n e r ( R u n n e r ) :         d e f   _ _ i n i t _ _ ( s e l f ,   p r o g r a m ) :                 " " " I n i t i a l i z e .     ` p r o g r a m `   i s   a   p r o g r a m   s p e c   a s   p a s s e d   t o   ` s u b p r o c e s s . r u n ( ) ` " " "                 s e l f . p r o g r a m   =   p r o g r a m         d e f   r u n _ p r o c e s s ( s e l f ,   i n p = " " ) :                 " " " R u n   t h e   p r o g r a m   w i t h   ` i n p `   a s   i n p u t .     R e t u r n   r e s u l t   o f   ` s u b p r o c e s s . r u n ( ) ` . " " "                 r e t u r n   s u b p r o c e s s . r u n ( s e l f . p r o g r a m ,                                                             i n p u t = i n p ,                                                             s t d o u t = s u b p r o c e s s . P I P E ,                                                             s t d e r r = s u b p r o c e s s . P I P E ,                                                             u n i v e r s a l _ n e w l i n e s = T r u e )         d e f   r u n ( s e l f ,   i n p = " " ) :                 " " " R u n   t h e   p r o g r a m   w i t h   ` i n p `   a s   i n p u t .     R e t u r n   t e s t   o u t c o m e   b a s e d   o n   r e s u l t   o f   ` s u b p r o c e s s . r u n ( ) ` . " " "                 r e s u l t   =   s e l f . r u n _ p r o c e s s ( i n p )                 i f   r e s u l t . r e t u r n c o d e   = =   0 :                         o u t c o m e   =   s e l f . P A S S                 e l i f   r e s u l t . r e t u r n c o d e   <   0 :                         o u t c o m e   =   s e l f . F A I L                 e l s e :                         o u t c o m e   =   s e l f . U N R E S O L V E D                 r e t u r n   ( r e s u l t ,   o u t c o m e ) c l a s s   B i n a r y P r o g r a m R u n n e r ( P r o g r a m R u n n e r ) :
使 c a t 使 便 F u z z e r f u z z e r f u z z e r r u n n e r . F u z z e r r u n R u n n e r r u n s ( ) t r i a l s 使 c a t c a t c a t c l a s s   B i n a r y P r o g r a m R u n n e r ( P r o g r a m R u n n e r ) :         d e f   r u n _ p r o c e s s ( s e l f ,   i n p = " " ) :                 " " " R u n   t h e   p r o g r a m   w i t h   ` i n p `   a s   i n p u t .     R e t u r n   r e s u l t   o f   ` s u b p r o c e s s . r u n ( ) ` . " " "                 r e t u r n   s u b p r o c e s s . r u n ( s e l f . p r o g r a m ,                                                             i n p u t = i n p . e n c o d e ( ) ,                                                             s t d o u t = s u b p r o c e s s . P I P E ,                                                             s t d e r r = s u b p r o c e s s . P I P E ) P r o g r a m R u n n e r c a t c a t c a t c a t   =   P r o g r a m R u n n e r ( p r o g r a m = " c a t " ) c a t . r u n ( " h e l l o " ) ( C o m p l e t e d P r o c e s s ( a r g s = ' c a t ' ,   r e t u r n c o d e = 0 ,   s t d o u t = ' h e l l o ' ,   s t d e r r = ' ' ) ,   ' P A S S ' ) c l a s s   F u z z e r ( o b j e c t ) :         d e f   _ _ i n i t _ _ ( s e l f ) :                 p a s s         d e f   f u z z ( s e l f ) :                 " " " R e t u r n   f u z z   i n p u t " " "                 r e t u r n   " "         d e f   r u n ( s e l f ,   r u n n e r = R u n n e r ( ) ) :                 " " " R u n   ` r u n n e r `   w i t h   f u z z   i n p u t " " "                 r e t u r n   r u n n e r . r u n ( s e l f . f u z z ( ) )         d e f   r u n s ( s e l f ,   r u n n e r = P r i n t R u n n e r ( ) ,   t r i a l s = 1 0 ) :                 " " " R u n   ` r u n n e r `   w i t h   f u z z   i n p u t ,   ` t r i a l s `   t i m e s " " "                 #   N o t e :   t h e   l i s t   c o m p r e h e n s i o n   b e l o w   d o e s   n o t   i n v o k e   s e l f . r u n ( )   f o r   s u b c l a s s e s                 #   r e t u r n   [ s e l f . r u n ( r u n n e r )   f o r   i   i n   r a n g e ( t r i a l s ) ]                 o u t c o m e s   =   [ ]                 f o r   i   i n   r a n g e ( t r i a l s ) :                         o u t c o m e s . a p p e n d ( s e l f . r u n ( r u n n e r ) )                 r e t u r n   o u t c o m e s F u z z e r R a n d o m F u z z e r f u z z e r ( ) m i n _ l e n g t h c l a s s   R a n d o m F u z z e r ( F u z z e r ) :         d e f   _ _ i n i t _ _ ( s e l f ,   m i n _ l e n g t h = 1 0 ,   m a x _ l e n g t h = 1 0 0 ,                                   c h a r _ s t a r t = 3 2 ,   c h a r _ r a n g e = 3 2 ) :                 " " " P r o d u c e   s t r i n g s   o f   ` m i n _ l e n g t h `   t o   ` m a x _ l e n g t h `   c h a r a c t e r s                       i n   t h e   r a n g e   [ ` c h a r _ s t a r t ` ,   ` c h a r _ s t a r t `   +   ` c h a r _ r a n g e ` ] " " "                 s e l f . m i n _ l e n g t h   =   m i n _ l e n g t h                 s e l f . m a x _ l e n g t h   =   m a x _ l e n g t h                 s e l f . c h a r _ s t a r t   =   c h a r _ s t a r t                 s e l f . c h a r _ r a n g e   =   c h a r _ r a n g e         d e f   f u z z ( s e l f ) :                 s t r i n g _ l e n g t h   =   r a n d o m . r a n d r a n g e ( s e l f . m i n _ l e n g t h ,   s e l f . m a x _ l e n g t h   +   1 )                 o u t   =   " "                 f o r   i   i n   r a n g e ( 0 ,   s t r i n g _ l e n g t h ) :                         o u t   + =   c h r ( r a n d o m . r a n d r a n g e ( s e l f . c h a r _ s t a r t ,                                                                                 s e l f . c h a r _ s t a r t   +   s e l f . c h a r _ r a n g e ) )                 r e t u r n   o u t R a n d o m F u z z e r r a n d o m _ f u z z e r   =   R a n d o m F u z z e r ( m i n _ l e n g t h = 2 0 ,   m a x _ l e n g t h = 2 0 ) f o r   i   i n   r a n g e ( 1 0 ) :         p r i n t ( r a n d o m _ f u z z e r . f u z z ( ) ) ' > 2 3 > 3 3 ) ( & " 0 9 . 3 7 7 . * 3 * + : 5   ?   ( ? 1 $ 4 < > ! ? 3 > . ' 4 + 3 / ( 3   ( 0 % ! > ! ( + 9 % , # $ / 5 1 $ 2 9 6 4 > ; ) 2 4 1 7 < 9 " 2 & 9 0 7 . .   ! 7 : & - - " = $ 7 ' , 7 * ( 5 = 5 ' . ! * + & > " ) 6 % 9 ) = , / ? : & 5 )   " ; . 0 ! = 6 > 3 + > ) = , 6 & , ? : ! # 2 ) ) -   ? : ) = 6 3 ' - , ) 9 # 8 3 9 % ) ? & ( 0 < 6 ( " * ; ) 4 ? ! ( 4 9 + 8 = - ' & 4 9 9 % ? <   ' f o r   i   i n   r a n g e ( 1 0 ) :         i n p   =   r a n d o m _ f u z z e r . f u z z ( )         r e s u l t ,   o u t c o m e   =   c a t . r u n ( i n p )
F u z z e r R u n n e r 使         r e s u l t ,   o u t c o m e   =   c a t . r u n ( i n p )         a s s e r t   r e s u l t . s t d o u t   = =   i n p         a s s e r t   o u t c o m e   = =   R u n n e r . P A S S r a n d o m _ f u z z e r . r u n ( c a t ) ( C o m p l e t e d P r o c e s s ( a r g s = ' c a t ' ,   r e t u r n c o d e = 0 ,   s t d o u t = ' ? : + =   %   < 1 < 6 $ : ( > = : 9 ) 5 ' ,   s t d e r r = ' ' ) , ' P A S S ' ) r u n s ( ) r a n d o m _ f u z z e r . r u n s ( c a t ,   1 0 ) [ ( C o m p l e t e d P r o c e s s ( a r g s = ' c a t ' ,   r e t u r n c o d e = 0 ,   s t d o u t = ' 3 9 7 6 % % & + % 6 = ( 1 ) 3 & 3 : < 9 ' ,   s t d e r r = ' ' ) , ' P A S S ' ) , ( C o m p l e t e d P r o c e s s ( a r g s = ' c a t ' ,   r e t u r n c o d e = 0 ,   s t d o u t = ' 3 3 $ # 4 2 $   1 1 = * % $ 2 0 = < . - ' ,   s t d e r r =
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则