[19585] 2020-02-27_干货分享丨如何在代码空白区添加ShellCode

文档创建者:s7ckTeam
浏览次数:6
最后更新:2025-01-18
2020-02-27_干货分享丨如何在代码空白区添加ShellCode S h e l l C o d e   f l a g 0   i   2 0 2 0 - 0 2 - 2 7   i   f l a g 0 S h e l l C o d e i   P E W i n d o w s   X P P E T o o l U e d i t 3 2 V i s u a l   c + +   6 . 0 s h e l l c o d e S h e l l C o d e M e s s a g e B o x S h e l l C o d e E 8 E 9 O E P
V i r u a l S i z e S i z e O f R a w D a t a ( ) P E T o o l P E P o i n t e r T o R a w D a t a   +   V i r t u a l S i z e       7 7 4 8 + 4 0 0 = 7 B 4 8 U e d i t M e s s a g e B o x S h e l l C o d e C + +   F 9 M e s s a g e B o x - > G o   T o   D i s a s s e m b l y I M A G E _ O P T I O N A L _ H E A D E R 3 2 ( P E ) A d d r e s s E n t r y P i n t : 0 0 0 0 7 3 9 D                 ( ) I m a g e B a s e :                   0 1 0 0 0 0 0 0               ( ) S e c t i o n A l i g n m e n g : 0 0 0 0 1 0 0 0                 ( ) F i l e A l i g n m e n t :           0 0 0 0 0 2 0 0                 ( ) I M A G E _ S E C T I O N _ H E A D E R ( ) V i r t u a l S i z e :           0 0 0 0 7 7 4 8                 ( ) V i r t u a l A d d r e s s :           0 0 0 0 1 0 0 0                   ( ) S i z e O f R a w D a t a :           0 0 0 0 7 8 0 0                 ( ) P o i n t e r T o R a w D a t a : 0 0 0 0 0 4 0 0                 ( ) C h a r a c t e r i s t i c s :   6 0 0 0 0 0 2 0                 ( ) i n c l u d e   " s t d a f x . h " i n c l u d e   " w i n d o w s . h " i n t   m a i n ( i n t   a r g c ,   c h a r *   a r g v [ ] ) { M e s s a g e B o x ( 0 , 0 , 0 , 0 ) ; p r i n t f ( " H e l l o   W o r l d ! n " ) ; r e t u r n   0 ; } 9 :                 M e s s a g e B o x ( 0 , 0 , 0 , 0 ) ; 0 0 4 0 1 0 2 8   8 B   F 4                                 m o v                   e s i , e s p 0 0 4 0 1 0 2 A   6 A   0 0                                 p u s h                 0
F 1 1 M e s s a g e B o x 7 7 D 5 0 5 0 B   8 B   F F                                 m o v                   e d i , e d i c a l l E 8   0 0   0 0   0 0   0 0 j m p   E 9   0 0   0 0   0 0   0 0 S h e l l C o d e 6 A   0 0   6 A   0 0   6 A   0 0   6 A   0 0   E 8   0 0   0 0   0 0   0 0   E 9   0 0   0 0   0 0   0 0 6 A   0 0   6 A   0 0   6 A   0 0   6 A   0 0 p u s h   0   p u s h   0   p u s h   0   p u s h   0 M e s s a g e B o x S h e l l C o d e E 8 E 9 F O A   - >   R V A F O A R V A ( ) F O A - > R V A S e c t i o n A l i g n m e n g : 0 0 0 0 1 0 0 0                 ( ) F i l e A l i g n m e n t :           0 0 0 0 0 2 0 0                 ( ) F O A - > R V A   F O A _ s h e l l c o d e A d d r   -   P o i n t e r T o R a w D a t a   +   V i r t u a l A d d r e s s   +   I m a g e B a s e   =   R V A _ s h e l l c o d e A d d r 7 b 5 0   -   4 0 0   +   1 0 0 0   +   0 1 0 0 0 0 0 0   =   1 0 0   8 7 5 0 使 E 8 E 9 E 8     =   M e s s a g e B o x   -   E 8 7 7 D 5 0 5 0 B   -       ( 1 0 0   8 7 5 0   + D )   =   7 6 D 4   7 D A E E 9     =   I m a g e B a s e   +   A d d r e s s E n t r y P o i n t   -   E 9 ( 0 1 0 0 0 0 0 0   +   7 3 9 D )   -   ( 1 0 0   8 7 5 0   +   1 2 )   =   F F F F   E C 3 B 0 0 4 0 1 0 2 A   6 A   0 0                                 p u s h                 0 0 0 4 0 1 0 2 C   6 A   0 0                                 p u s h                 0 0 0 4 0 1 0 2 E   6 A   0 0                                 p u s h                 0 0 0 4 0 1 0 3 0   6 A   0 0                                 p u s h                 0 0 0 4 0 1 0 3 2   F F   1 5   8 C   5 2   4 2   0 0         c a l l                 d w o r d   p t r   [ i m p M e s s a g e B o x A @ 1 6   ( 0 0 4 2 5 2 8 c ) ] 0 0 4 0 1 0 3 8   3 B   F 4                                 c m p                   e s i , e s p 0 0 4 0 1 0 3 A   E 8   C 1   0 0   0 0   0 0               c a l l                 _ _ c h k e s p   ( 0 0 4 0 1 1 0 0 )
D W O R D E 8   E 9 O E P O E P   =   R V A _ s h e l l c o d e A d d r   -   I m a g e B a s e 1 0 0   8 7 5 0   -   1 0 0 0 0 0 0   =   8 7 5 0 O E P 使 S h e l l C o d e e x e P E s h e l l c o d e F O A - > R V A E 8 E 9 O E P # i n c l u d e   " s t d a f x . h " # i n c l u d e   " w i n d o w s . h " # i n c l u d e   " s t d l i b . h " # d e f i n e   F I L E P A T H _ I N   " C : t e s t . e x e " # d e f i n e   F I L E P A T H _ O U T   " C : t . e x e " # d e f i n e   S H E L L C O D E L E N G T H   0 X 1 2 # d e f i n e   M E S S A G E B O X A D D R   0 x 7 7 D 5 0 5 0 B B Y T E   s h e l l C o d e [ ]   = {         0 x 6 A , 0 x 0 0 , 0 x 6 A , 0 x 0 0 , 0 x 6 A , 0 x 0 0 , 0 x 6 A , 0 x 0 0 ,         0 x E 8 , 0 x 0 0 , 0 x 0 0 , 0 x 0 0 , 0 x 0 0 ,         0 x E 9 , 0 x 0 0 , 0 x 0 0 , 0 x 0 0 , 0 x 0 0 } ; i n t   F i l e L e n g t h ( F I L E *   f p ) {         i n t   f i l e S i z e   =   0 ;         f s e e k ( f p , 0 , S E E K _ E N D ) ;         f i l e S i z e   =   f t e l l ( f p ) ;         f s e e k ( f p , 0 , S E E K _ S E T ) ;     / /
        f s e e k ( f p , 0 , S E E K _ S E T ) ;     / /         r e t u r n   f i l e S i z e ; } D W O R D   R e a d P E F i l e ( I N   L P S T R   l p s z F i l e , O U T   L P V O I D *   p F i l e B u f f e r ) {         F I L E *   p F i l e   =   N U L L ;         D W O R D   f i l e S i z e   =   0 ;         / /         p F i l e   =   f o p e n ( l p s z F i l e , " r b + " ) ;         i f ( ! p F i l e )         {                 p r i n t f ( " E X E " ) ;                 r e t u r n   N U L L ;         }         / /         f i l e S i z e   =   F i l e L e n g t h ( p F i l e ) ;         / /         * p F i l e B u f f e r   =   m a l l o c ( f i l e S i z e ) ;         i f ( ! p F i l e B u f f e r )         {                 p r i n t f ( "   " ) ;                 f c l o s e ( p F i l e ) ;                 r e t u r n   N U L L ;         }         / /         s i z e _ t   n   =   f r e a d ( * p F i l e B u f f e r , f i l e S i z e , 1 , p F i l e ) ;         i f ( ! n )         {                 p r i n t f ( "     " ) ;                 f r e e ( * p F i l e B u f f e r ) ;                 f c l o s e ( p F i l e ) ;                 r e t u r n   N U L L ;         }         / /         f c l o s e ( p F i l e ) ;         r e t u r n   f i l e S i z e ; } V O I D   a d d S h e l l C o d e ( ) {         L P V O I D   p F i l e B u f f e r = N U L L ;         P I M A G E _ D O S _ H E A D E R   p D o s H e a d e r   =   N U L L ; / / D O S         P I M A G E _ N T _ H E A D E R S   p N T H e a d e r   =   N U L L ; / / N T         P I M A G E _ F I L E _ H E A D E R   p P E H e a d e r   =   N U L L ; / / P E         P I M A G E _ O P T I O N A L _ H E A D E R 3 2   p O p t i o n H e a d e r   =   N U L L ; / / P E         P I M A G E _ S E C T I O N _ H E A D E R   p S e c t i o n H e a d e r   =   N U L L ; / /             D W O R D   R V A _ c o d e B e g i n   =   0 ;         / / e x e         s i z e _ t   s i z e   =   R e a d P E F i l e ( F I L E P A T H _ I N , & p F i l e B u f f e r ) ;         / / P E         p D o s H e a d e r   =   ( P I M A G E _ D O S _ H E A D E R ) p F i l e B u f f e r ; / / D o s         p N T H e a d e r   =   ( P I M A G E _ N T _ H E A D E R S ) ( ( D W O R D ) p F i l e B u f f e r + p D o s H e a d e r - > e _ l f a n e w ) ; / / N T         p P E H e a d e r   =   ( P I M A G E _ F I L E _ H E A D E R ) ( ( ( D W O R D ) p N T H e a d e r )   +   4 ) ; / / P E         p O p t i o n H e a d e r   =   ( P I M A G E _ O P T I O N A L _ H E A D E R 3 2 ) ( ( D W O R D ) p P E H e a d e r   +   I M A G E _ S I Z E O F _ F I L E _ H E A D E R ) ; / / P E         p S e c t i o n H e a d e r   =   ( P I M A G E _ S E C T I O N _ H E A D E R ) ( ( D W O R D ) p O p t i o n H e a d e r   +   p P E H e a d e r - > S i z e O f O p t i o n a l H e a d e r ) ; / /         / /         i f ( ( p S e c t i o n H e a d e r - > S i z e O f R a w D a t a   -   p S e c t i o n H e a d e r - > M i s c . V i r t u a l S i z e )   <   S H E L L C O D E L E N G T H )         {                 p r i n t f ( " " ) ;
M e s s a g e B o x M e s s a g e B o x i                 p r i n t f ( " " ) ;                 f r e e ( p F i l e B u f f e r ) ;                 e x i t ( 0 ) ;         }         / / s h e l l c o d e         P B Y T E   c o d e B e g i n   =   ( P B Y T E ) ( ( D W O R D ) p F i l e B u f f e r + p S e c t i o n H e a d e r - > P o i n t e r T o R a w D a t a   + p S e c t i o n H e a d e r - > M i s c . V i r t u a l S i z e   + 8 ) ;         p r i n t f ( " c o d e B e g i n : % x n " , c o d e B e g i n ) ;         m e m c p y ( c o d e B e g i n , s h e l l C o d e , S H E L L C O D E L E N G T H ) ;         / / F O A - > R V A         i f ( p O p t i o n H e a d e r - > S e c t i o n A l i g n m e n t   ! =   p O p t i o n H e a d e r - > F i l e A l i g n m e n t )         {                 R V A _ c o d e B e g i n   =   ( D W O R D ) c o d e B e g i n   -   p S e c t i o n H e a d e r - > P o i n t e r T o R a w D a t a   +   p S e c t i o n H e a d e r - > V i r t u a l A d d r e s s   +   p O p t i o n H e a d e r - > I m a g e B a s e   -   ( D W O R D ) p F i l e B u f f e r ;         } e l s e         {                 R V A _ c o d e B e g i n   =   ( D W O R D ) c o d e B e g i n   -   ( D W O R D ) p F i l e B u f f e r ;         }         / / E 8         D W O R D   c a l l A d d r   =   M E S S A G E B O X A D D R   -   ( R V A _ c o d e B e g i n + 0 x D ) ;         p r i n t f ( " c a l l A d d r : % x n " , c a l l A d d r ) ;         * ( P D W O R D ) ( c o d e B e g i n + 0 x 9 )   =   c a l l A d d r ;         / / E 9         D W O R D   j m p A d d r   =   ( p O p t i o n H e a d e r - > I m a g e B a s e   +   p O p t i o n H e a d e r - > A d d r e s s O f E n t r y P o i n t )   -   ( R V A _ c o d e B e g i n + 0 x 1 2 ) ;         p r i n t f ( " I m a g e B a s e : % x n A d d r e s s E n t r y P o i n t : % x n " , p O p t i o n H e a d e r - > I m a g e B a s e , p O p t i o n H e a d e r - > A d d r e s s O f E n t r y P o i n t ) ;         * ( P D W O R D ) ( c o d e B e g i n + 0 x E )   =   j m p A d d r ;         p r i n t f ( " j m p A d d r : % x n " , j m p A d d r ) ;         / / O E P         p O p t i o n H e a d e r - > A d d r e s s O f E n t r y P o i n t   =   R V A _ c o d e B e g i n - p O p t i o n H e a d e r - > I m a g e B a s e ;         p r i n t f ( " O E P : % x n " , R V A _ c o d e B e g i n - p O p t i o n H e a d e r - > I m a g e B a s e ) ;         / /         F I L E *   f p   =   f o p e n ( F I L E P A T H _ O U T , " w b + " ) ;         f w r i t e ( p F i l e B u f f e r , s i z e , 1 , f p ) ;         f c l o s e ( f p ) ; } i n t   m a i n ( i n t   a r g c ,   c h a r *   a r g v [ ] ) {         a d d S h e l l C o d e ( ) ;         s y s t e m ( " p a u s e " ) ;         r e t u r n   0 ; }
1 9 i Y O U 线 i 线 线 ~ i 沿

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则