[20355] 2020-08-07_恶意代码分析系列-几种常用技术(2)

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2020-08-07_恶意代码分析系列-几种常用技术(2) - 2 K h a n   2 0 2 0 - 0 8 - 0 7   使     使   W i n d o w s W i n d o w s 线 使   ,         . A P T D L L S h e l l C o d e D L L D L L D L L S e t W i n d o w s H o o k E x ( ) W I N U S E R A P I H H O O K W I N A P I   S e t W i n d o w s H o o k E x A (         _ I n _   i n t   i d H o o k ,                 / /               _ I n _   H O O K P R O C   l p f n ,           / /           _ I n _ o p t _   H I N S T A N C E   h m o d , / /   l p f n D L L         _ I n _   D W O R D   d w T h r e a d I d ) ;   / /   线
线 线 线 线     U n h o o k W i n d o w s H o o k E x B O O L   U n h o o k W i n d o w s H o o k E x (     H H O O K   h h k ) ; / /   L R E S U L T W I N A P I   C a l l N e x t H o o k E x (         _ I n _ o p t _   H H O O K   h h k ,         _ I n _   i n t   n C o d e ,         _ I n _   W P A R A M   w P a r a m ,         _ I n _   L P A R A M   l P a r a m ) ; O p e n P r o c e s s ( ) H A N D L E W I N A P I   O p e n P r o c e s s (         _ I n _   D W O R D   d w D e s i r e d A c c e s s ,     / /   访         _ I n _   B O O L   b I n h e r i t H a n d l e ,         / /   t r u e         _ I n _   D W O R D   d w P r o c e s s I d               / /   P I D         ) ; / /   N U L L V i r t u a l A l l o c E x ( ) L P V O I D W I N A P I V i r t u a l A l l o c E x (         _ I n _   H A N D L E   h P r o c e s s ,             / /           _ I n _ o p t _   L P V O I D   l p A d d r e s s ,   / /   N U L L         _ I n _   S I Z E _ T   d w S i z e ,                 / /           _ I n _   D W O R D   f l A l l o c a t i o n T y p e ,   / /           _ I n _   D W O R D   f l P r o t e c t                   / /           ) ; / /   N U L L
    线     S E S S I O N   0   W r i t e P r o c e s s M e m o r y ( ) B O O L W I N A P I   W r i t e P r o c e s s M e m o r y (         _ I n _   H A N D L E   h P r o c e s s ,       / /           _ I n _   L P V O I D   l p B a s e A d d r e s s ,   / /           _ I n _ r e a d s _ b y t e s _ ( n S i z e )   L P C V O I D   l p B u f f e r ,   / /           _ I n _   S I Z E _ T   n S i z e ,         / /           _ O u t _ o p t _   S I Z E _ T *   l p N u m b e r O f B y t e s W r i t t e n     / /           ) ; / /     ! =   0 ; 0   / /   访 C r e a t e R e m o t e T h r e a d ( ) H A N D L E W I N A P I   C r e a t e R e m o t e T h r e a d (         _ I n _   H A N D L E   h P r o c e s s ,       / /   线         _ I n _ o p t _   L P S E C U R I T Y _ A T T R I B U T E S   l p T h r e a d A t t r i b u t e s ,                 / /           _ I n _   S I Z E _ T   d w S t a c k S i z e ,     / /   0 线 使         _ I n _   L P T H R E A D _ S T A R T _ R O U T I N E   l p S t a r t A d d r e s s ,                 / /   线 L P T H R E A D _ S T A R T _ R O U T I N E   线         _ I n _ o p t _   L P V O I D   l p P a r a m e t e r ,     / /   线         _ I n _   D W O R D   d w C r e a t i o n F l a g s ,       / /   线         _ O u t _ o p t _   L P D W O R D   l p T h r e a d I d     / /   线         ) ; / /     线 N U L L s h e l l c o d e D L L Z w C r e a t e T h r e a d E x ( )
A P C A P C   (   )   线 W i n d o w s   , I O 线   A P C   使     A P C     A P C     A P C   线   A P C   线   A P C   , 线 线       线   H O O K H O O K A s y n c h r o n u s P r o c e d u r e C a l l A P C Q u e u e U s e r A P C W I N B A S E A P I D W O R D   W I N A P I   Q u e u e U s e r A P C (         _ I n _   P A P C F U N C   p f n A P C ,     / /   A P C         _ I n _   H A N D L E   h T h r e a d ,       / /   线         _ I n _   U L O N G _ P T R   d w D a t a     / /   p f n A P C A P C         ) ; / /     0 0   A P C A P C D L L D L L A P C
i n l i n e h o o k I A T H O O K i n l i n e h o o k   H O O K               ,   h o o k C A L L   ,   5     =     -     -   5 1 .   2 .   C A L L C A L L p u s h j m p p u s h 0 1 7 1 B 7 B 3 j m p 0 1 7 1 B 4 3 0 0 0 . 0 1 7 1 B 4 3 0 j m p 0 1 7 1 B 7 B 3 j m p
3 .   4 .       H o o k     P E     v o i d   O n H o o k ( )   {               / /                 H M O D U L E   M o d u l e   =   G e t M o d u l e H a n d l e A ( " k e r n e l 3 2 . d l l " ) ;                 L P V O I D   f u n c   =   G e t P r o c A d d r e s s ( M o d u l e ,   " O p e n P r o c e s s " ) ;         / / 5                 m e m c p y ( g _ o l d C o d e ,   f u n c ,   5 ) ;         / /                 D W O R D   d w P r o t e c t ;                 V i r t u a l P r o t e c t ( f u n c ,   5 ,   P A G E _ E X E C U T E _ R E A D W R I T E ,   & d w P r o t e c t ) ;                 / /         * ( D W O R D * ) & g _ n e w C o d e [ 1 ]   =   ( D W O R D ) M y O p e n P r o c e s s   -   ( D W O R D ) f u n c   -   5 ;                 / /           m e m c p y ( f u n c ,   g _ n e w C o d e ,   5 ) ;                 / /                 V i r t u a l P r o t e c t ( f u n c ,   5 ,   d w P r o t e c t ,   & d w P r o t e c t ) ;   } ; I A T H o o k I A T I n l i n e H o o k I A T H o o k R V A F O A / / d l l   D W O R D   *   G e t I a t A d d r e s s ( c o n s t   c h a r   *   d l l N a m e ,   c o n s t   c h a r *   f u n N a m e )   {                 / /   1 .   D O S                 a u t o   D o s H e a d e r   =   ( P I M A G E _ D O S _ H E A D E R ) G e t M o d u l e H a n d l e ( N U L L ) ;         / /   2 .     D O S     e _ l f a n e w     N T                   a u t o   N t H e a d e r   =   ( P I M A G E _ N T _ H E A D E R S ) ( D o s H e a d e r - > e _ l f a n e w   +   ( D W O R D ) D o s H e a d e r ) ;         / /   3 .   [ 1 ] R V A                 D W O R D   I m p R V A   =   N t H e a d e r - > 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 ] . V i r t u a l A d d r e s s ;         / /   4 .   F O A                 a u t o   I m p T a b l e   =   ( P I M A G E _ I M P O R T _ D E S C R I P T O R ) ( ( D W O R D ) D o s H e a d e r   +   I m p R V A ) ;
  e n d         a u t o   I m p T a b l e   =   ( P I M A G E _ I M P O R T _ D E S C R I P T O R ) ( ( D W O R D ) D o s H e a d e r   +   I m p R V A ) ;         / /   0                 w h i l e   ( I m p T a b l e - > N a m e )             {                                 / /                                   C H A R *   N a m e   =   ( C H A R * ) ( I m p T a b l e - > N a m e   +   ( D W O R D ) D o s H e a d e r ) ;                 / /                                   i f   ( ! _ s t r i c m p ( N a m e ,   d l l N a m e ) )                                 {                                                 / /     I N T     I A T                                                   D W O R D *   I n t T a b l e   =   ( D W O R D * ) ( ( D W O R D ) D o s H e a d e r   +   I m p T a b l e - > O r i g i n a l F i r s t T h u n k ) ;                                                 D W O R D *   I a t T a b l e   =   ( D W O R D * ) ( ( D W O R D ) D o s H e a d e r   +   I m p T a b l e - > F i r s t T h u n k ) ;                                                 / /   /                                                 f o r   ( i n t   i   =   0 ;   I n t T a b l e [ i ]   ! =   0 ;   + + i )                                                 {                                                                 / /                                                                   i f   ( ( I n t T a b l e [ i ]   &   0 x 8 0 0 0 0 0 0 0 )   = =   0 )                                                                 {                                                                                 / /                                                                                   a u t o   N a m e   =   ( P I M A G E _ I M P O R T _ B Y _ N A M E ) ( ( D W O R D ) D o s H e a d e r   +   I n t T a b l e [ i ] ) ;                                         / /                                                                                   i f   ( ! s t r c m p ( f u n N a m e ,   N a m e - > N a m e ) )                                                                                 {                                                                                                 / /   I A T                                                                                                 r e t u r n   & I a t T a b l e [ i ] ;                                                                                 }                                                                 }                                                 }                                 }                                 I m p T a b l e + + ;                 }                 r e t u r n   0 ;   } A P I
                                                                               
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则