[15104] 2020-03-07_如何从内存加载DLL

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2020-03-07_如何从内存加载DLL D L L   F r e e B u f   2 0 2 0 - 0 3 - 0 7 ( D L L ) g i t h u b W i n d o w s   P E p e D O S   h e a d e r D O S   s t u b P E   h e a d e r S e c t i o n   h e a d e r S e c t i o n   1 S e c t i o n   2 .   .   . S e c t i o n   n w i n n t . h D O S   h e a d e r D O S   h e a d e r   D O S   s t u b   M i c r o s o f t D O S t y p e d e f   s t r u c t   _ I M A G E _ D O S _ H E A D E R   { / /   D O S   . E X E         W O R D   e _ m a g i c ;   / / M a g i c   n u m b e r         e _ c b l p ;   / /         e _ c p ;   / /         W O R D   e _ c r l c ;   / / R e l o c a t i o n s         e _ c p a r h d r ;   / / h e a d e r         e _ m i n a l l o c ;   / /         e _ m a x a l l o c ;   / /         W O R D   e _ s s ;   / / S S         W O R D   e _ s p ;   / / S P         W O R D   e _ c s u m ;   / /         W O R D   e _ i p ;   / / I P         W O R D   e _ c s ;   / / C S         e _ l f a r l c ;   / /         W O R D   e _ o v n o ;   / /         W O R D   e _ r e s   [ 4 ] ;   / /         W O R D   e _ o e m i d ;   / /   O E M e _ o e m i n f o         W O R D   e _ o e m i n f o ;   / /   O E M e _ o e m i d         e _ r e s 2   [ 1 0 ] ;   / /         L O N G   e _ l f a n e w ;   / / e x e     }   I M A G E _ 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 E   h e a d e r P E   F i l e H e a d e r p h y s i c a l   O p t i o n a l H e a d e r t y p e d e f   s t r u c t   _ I M A G E _ N T _ H E A D E R S   {         D W O R D         I M A G E _ F I L E _ H E A D E R   F i l e H e a d e r ;         I M A G E _ O P T I O N A L _ H E A D E R 3 2 }   I M A G E _ N T _ H E A D E R S 3 2 *   P I M A G E _ N T _ H E A D E R S 3 2 ; t y p e d e f   s t r u c t   _ I M A G E _ F I L E _ H E A D E R   {         W O R D         M a c h i n e ;         W O R D   N u m b e r O f S e c t i o n s ;         D W O R D   T i m e D a t e S t a m p ;         D W O R D   P o i n t e r T o S y m b o l T a b l e ;         D W O R D   N u m b e r O f S y m b o l s ;         W O R D   S i z e O f O p t i o n a l H e a d e r ;         W O R D         C h a r a c t e r i s t i c s ; }   I M A G E _ F I L E _ H E A D E R *   P I M A G E _ F I L E _ H E A D E R ; t y p e d e f   s t r u c t   _ I M A G E _ O P T I O N A L _ H E A D E R   {         / /         / /         / / W O R D         M a g i c ;         B Y T E         M a j o r L i n k e r V e r s i o n ;         B Y T E         M i n o r L i n k e r V e r s i o n ;         D W O R D       S i z e O f C o d e ;         D W O R D       S i z e O f I n i t i a l i z e d D a t a ;         D W O R D       S i z e O f U n i n i t i a l i z e d D a t a ;         D W O R D       A d d r e s s O f E n t r y P o i n t ;         D W O R D       B a s e O f C o d e ;         D W O R D       B a s e O f D a t a ;         / /         / /   N T         / /         D W O R D       I m a g e B a s e ;         D W O R D       S e c t i o n A l i g n m e n t ;         D W O R D       F i l e A l i g n m e n t ;         W O R D         M a j o r O p e r a t i n g S y s t e m V e r s i o n ;         W O R D         M i n o r O p e r a t i n g S y s t e m V e r s i o n ;         W O R D         M a j o r I m a g e V e r s i o n ;         W O R D         M i n o r I m a g e V e r s i o n ;         W O R D         M a j o r S u b s y s t e m V e r s i o n ;         W O R D         M i n o r S u b s y s t e m V e r s i o n ;         D W O R D       W i n 3 2 V e r s i o n V a l u e ;
D a t a D i r e c t o r y 1 6 I M A G E N U M B E R O F D I R E C T O R Y _ E N T R I E S I n d e x 0 1 2 3 4 5 6 7 8 9 线 1 0 1 1 1 2 1 3 1 4 C O M D L L 访 S e c t i o n   h e a d e r P E O p t i o n a l H e a d e r M i c r o s o f t I M A G E F I R S T S E C T I O N P E         D W O R D       W i n 3 2 V e r s i o n V a l u e ;         D W O R D       S i z e O f I m a g e ;         D W O R D       S i z e O f H e a d e r s ;         D W O R D       C h e c k S u m ;         W O R D         S u b s y s t e m ;         W O R D         D l l C h a r a c t e r i s t i c s ;         D W O R D       S i z e O f S t a c k R e s e r v e ;         D W O R D       S i z e O f S t a c k C o m m i t ;         D W O R D       S i z e O f H e a p R e s e r v e ;         D W O R D       S i z e O f H e a p C o m m i t ;         D W O R D       L o a d e r F l a g s ;         D W O R D       N u m b e r O f R v a A n d S i z e s ;         I M A G E _ D A T A _ D I R E C T O R Y   D a t a D i r e c t o r y [ I M A G E _ N U M B E R O F _ D I R E C T O R Y _ E N T R I E S ] ; }   I M A G E _ O P T I O N A L _ H E A D E R 3 2 *   P I M A G E _ O P T I O N A L _ H E A D E R 3 2 ; t y p e d e f   s t r u c t   _ I M A G E _ S E C T I O N _ H E A D E R   {         B Y T E         N a m e [ I M A G E _ S I Z E O F _ S H O R T _ N A M E ] ;         u n i o n   {                         D W O R D       P h y s i c a l A d d r e s s ;                         D W O R D       V i r t u a l S i z e ;         }   M i s c ;         D W O R D       V i r t u a l A d d r e s s ;         D W O R D       S i z e O f R a w D a t a ;
P E 便 A P I L o a d L i b r a r y W i n d o w s 1 . D O S P E 2 . P E H e a d e r . O p t i o n a l H e a d e r . I m a g e B a s e P E H e a d e r . O p t i o n a l H e a d e r . S i z e O f I m a g e 3 . 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 A d d r e s s 4 . I m a g e B a s e / B a s e r e l o c a t i o n . 5 . 6 . 7 . 使 D L L P R O C E S S A T T A C H 使 V i r t u a l A l l o c / W i n d o w s 访 访 O p t i o n a l H e a d e r I m a g e B a s e I m a g e B a s e s e c t i o n s s e c t i o n   h e a d e r           D W O R D       S i z e O f R a w D a t a ;         D W O R D       P o i n t e r T o R a w D a t a ;         D W O R D       P o i n t e r T o R e l o c a t i o n s ;         D W O R D       P o i n t e r T o L i n e n u m b e r s ;         W O R D         N u m b e r O f R e l o c a t i o n s ;         W O R D         N u m b e r O f L i n e n u m b e r s ;         D W O R D       C h a r a c t e r i s t i c s ; }   I M A G E _ 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 ; m e m o r y   =   V i r t u a l A l l o c ( ( L P V O I D ) ( P E H e a d e r - > O p t i o n a l H e a d e r . I m a g e B a s e ) ,         P E H e a d e r - > O p t i o n a l H e a d e r . S i z e O f I m a g e ,         M E M _ R E S E R V E ,         P A G E _ R E A D W R I T E ) ;
B a s e   r e l o c a t i o n / I m a g e B a s e O p t i o n a l H e a d e r = >   r e l o c a t e d O p t i o n a l H e a d e r D a t a D i r e c t o r y 5 S i z e O f B l o c k     I M A G E S I Z E O F B A S E _ R E L O C A T I O N /   2 1 6 4 1 2 V i r t u a l A d d r e s s D L L 使 I M A G E R E L B A S E D _ A B S O L U T E I M A G E R E L B A S E D _ H I G H L O W I m a g e B a s e 3 2 O p t i o n a l H e a d e r D a t a D i r e c t o r y 1 K E R N E L 3 2 . D L L O r i g i n a l F i r s t T h u n k d e s t   =   V i r t u a l A l l o c ( b a s e A d d r e s s   +   s e c t i o n - > V i r t u a l A d d r e s s ,         s e c t i o n - > S i z e O f R a w D a t a ,         M E M _ C O M M I T ,         P A G E _ R E A D W R I T E ) ; t y p e d e f   s t r u c t   _ I M A G E _ B A S E _ R E L O C A T I O N   {         D W O R D       V i r t u a l A d d r e s s ;         D W O R D       S i z e O f B l o c k ; }   I M A G E _ B A S E _ R E L O C A T I O N ; t y p e d e f   s t r u c t   _ I M A G E _ I M P O R T _ D E S C R I P T O R   {         u n i o n   {                 D W O R D       C h a r a c t e r i s t i c s ;                         / /   0   f o r   t e r m i n a t i n g   n u l l   i m p o r t   d e s c r i p t o r                 D W O R D       O r i g i n a l F i r s t T h u n k ;                   / /   R V A   t o   o r i g i n a l   u n b o u n d   I A T   ( P I M A G E _ T H U N K _ D A T A )         } ;         D W O R D       T i m e D a t e S t a m p ;                                     / /   0   i f   n o t   b o u n d ,                                                                                         / /   - 1   i f   b o u n d ,   a n d   r e a l   d a t e t i m e   s t a m p                                                                                         / /           i n   I M A G E _ D I R E C T O R Y _ E N T R Y _ B O U N D _ I M P O R T   ( n e w   B I N D )                                                                                         / /   O . W .   d a t e / t i m e   s t a m p   o f   D L L   b o u n d   t o   ( O l d   B I N D )         D W O R D       F o r w a r d e r C h a i n ;                                   / /   - 1   i f   n o   f o r w a r d e r s         D W O R D       N a m e ;         D W O R D       F i r s t T h u n k ;                                           / /   R V A   t o   I A T   ( i f   b o u n d   t h i s   I A T   h a s   a c t u a l   a d d r e s s e s ) }   I M A G E _ I M P O R T _ D E S C R I P T O R ;
F i r s t T h u n k   I M A G E S C N M E M _ E X E C U T E I M A G E S C N M E M _ R E A D I M A G E S C N M E M _ W R I T E P A G E _ N O A C C E S S P A G E _ W R I T E C O P Y P A G E _ R E A D O N L Y P A G E _ R E A D W R I T E P A G E _ E X E C U T E P A G E E X E C U T E W R I T E C O P Y P A G E E X E C U T E R E A D P A G E E X E C U T E R E A D W R I T E 使 V i r t u a l P r o t e c t 访 访 W i n d o w s I M A G E S C N M E M _ D I S C A R D A B L E n a m e R e f   =   ( D W O R D   * ) ( b a s e A d d r e s s   +   i m p o r t D e s c - > O r i g i n a l F i r s t T h u n k ) ; s y m b o l R e f   =   ( D W O R D   * ) ( b a s e A d d r e s s   +   i m p o r t D e s c - > F i r s t T h u n k ) ; f o r   ( ;   * n a m e R e f ;   n a m e R e f + + ,   s y m b o l R e f + + ) {         P I M A G E _ I M P O R T _ B Y _ N A M E   t h u n k D a t a   =   ( P I M A G E _ I M P O R T _ B Y _ N A M E ) ( c o d e B a s e   +   * n a m e R e f ) ;         * s y m b o l R e f   =   ( D W O R D ) G e t P r o c A d d r e s s ( h a n d l e ,   ( L P C S T R ) & t h u n k D a t a - > N a m e ) ;         i f   ( * f u n c R e f   = =   0 )         {                 h a n d l e I m p o r t E r r o r ( ) ;                 r e t u r n ;         } }
I M A G E S C N M E M N O T C A C H E D W i n d o w s P A G E _ N O C A C H E N o t i f y   l i b r a r y D L L A d d r e s s O f E n t r y P o i n t 使 使 访 O p t i o n a l H e a d e r D a t a D i r e c t o r y 0 A d d r e s s O f N a m e s A d d r e s s O f N a m e O r d i n a l s 使 A d d r e s s O f F u n c t i o n s n t y p e d e f   B O O L   ( W I N A P I   * D l l E n t r y P r o c ) ( H I N S T A N C E   h i n s t D L L ,   D W O R D   f d w R e a s o n ,   L P V O I D   l p R e s e r v e d ) ; D l l E n t r y P r o c   e n t r y   =   ( D l l E n t r y P r o c ) ( b a s e A d d r e s s   +   P E H e a d e r - > O p t i o n a l 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 ) ; ( * e n t r y ) ( ( H I N S T A N C E ) b a s e A d d r e s s ,   D L L _ P R O C E S S _ A T T A C H ,   0 ) ; t y p e d e f   s t r u c t   _ I M A G E _ E X P O R T _ D I R E C T O R Y   {         D W O R D       C h a r a c t e r i s t i c s ;         D W O R D       T i m e D a t e S t a m p ;         W O R D         M a j o r V e r s i o n ;         W O R D         M i n o r V e r s i o n ;         D W O R D       N a m e ;         D W O R D       B a s e ;         D W O R D       N u m b e r O f F u n c t i o n s ;         D W O R D       N u m b e r O f N a m e s ;         D W O R D       A d d r e s s O f F u n c t i o n s ;           / /   R V A   f r o m   b a s e   o f   i m a g e         D W O R D       A d d r e s s O f N a m e s ;                   / /   R V A   f r o m   b a s e   o f   i m a g e         D W O R D       A d d r e s s O f N a m e O r d i n a l s ;     / /   R V A   f r o m   b a s e   o f   i m a g e }   I M A G E _ E X P O R T _ D I R E C T O R Y ,   * P I M A G E _ E X P O R T _ D I R E C T O R Y ; D l l E n t r y P r o c   e n t r y   =   ( D l l E n t r y P r o c ) ( b a s e A d d r e s s   +   P E H e a d e r - > O p t i o n a l 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 ) ; ( * e n t r y ) ( ( H I N S T A N C E ) b a s e A d d r e s s ,   D L L _ P R O C E S S _ A T T A C H ,   0 ) ;
M e m o r y M o d u l e C D L L g i t h u b h t t p : / / g i t h u b . c o m / f a n c y c o d e / M e m o r y M o d u l e * j o a c h i m F B F r e e B u f . C O M t y p e d e f   v o i d   * H M E M O R Y M O D U L E ; H M E M O R Y M O D U L E   M e m o r y L o a d L i b r a r y ( c o n s t   v o i d   * ) ; F A R P R O C   M e m o r y G e t P r o c A d d r e s s ( H M E M O R Y M O D U L E ,   c o n s t   c h a r   * ) ; v o i d   M e m o r y F r e e L i b r a r y ( H M E M O R Y M O D U L E ) ;

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

本版积分规则