[29110] 2021-08-06_【漏洞分析】MicrosoftWindows通讯簿中堆缓冲区溢出漏洞分析

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-19
2021-08-06_【漏洞分析】MicrosoftWindows通讯簿中堆缓冲区溢出漏洞分析 M i c r o s o f t   W i n d o w s   簿 O t s   2 0 2 1 - 0 8 - 0 6 O t s   M i c r o s o f t   W i n d o w s   簿 2 0 2 1     2     M i c r o s o f t   W i n d o w s   簿 使 簿 簿 W i n d o w s   簿   M i c r o s o f t   W i n d o w s   M i c r o s o f t   访 W i n d o w s   簿 使 访   ( L D A P )   W i n d o w s   簿 1 9 9 6     W i n d o w s   V i s t a     W i n d o w s     W i n d o w s   1 0   W i n d o w s   簿   A P I 使 使 使 访   M i c r o s o f t   簿 使 W i n d o w s   簿   W i n d o w s   1 0     O u t l o o k     W i n d o w s   M a i l 使 W i n d o w s   使   W i n d o w s   簿   W i n d o w s   簿 C V E - 2 0 2 1 - 2 4 0 8 3 w a b 3 2 . d l l   S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( ) 使 . w a b   W A B     W i n d o w s   1 0   x 6 4     W i n d o w s   簿   D L L   ( w a b 3 2 . d l l )     1 0 . 0 . 1 9 0 4 1 . 3 8 8 W i n d o w s   簿   D L L w a b 3 2 . d l l 簿   A P I   访 使   W i n d o w s   簿 C o n t a c t s   D L L   C o n t a c t s   D L L     W i n d o w s   簿 簿   W A B     W i n d o w s   簿 . w a b   W i n d o w s 使 . w a b W i n d o w s   簿   W A B     W A B     W i n d o w s   簿   W i n d o w s   C : P r o g r a m   F i l e s W i n d o w s   M a i l w a b m i g . e x e 簿 w a b 3 2 . d l l   W A B     W i n d o w s   簿 W A B   W A B     W i n d o w s   簿   O u t l o o k   簿 w a b 3 2 . d l l W A B   O f f s e t             L e n g t h   ( b y t e s )         F i e l d                                       D e s c r i p t i o n - - - - - - - - -       - - - - - - - - - - - - - -         - - - - - - - - - - - - - - - - - - - -         - - - - - - - - - - - - - - - - - - -
  U n i c o d e   U T F 1 6 - L E   1 6 9 C   C B   C B   8 D   1 3   7 5   D 2   1 1   9 1   5 8   0 0   C 0   7 9   4 F   5 6   A 4 8 1   3 2   8 4   C 1   8 5   0 5   D 0   1 1   B 2   9 0   0 0   A A   0 0   3 C   F 6   7 6   W A B   W i n d o w s   簿   1     6 0 x 8 4 d 0   U n i c o d e   0 x F A 0   W A B     W A B   W A B   W A B   G U I D     W A B   0 x 0                   1 6                                 M a g i c   N u m b e r                         S i x t e e n   m a g i c   b y t e s 0 x 1 0                 4                                   C o u n t   1                                   U n k n o w n   I n t e g e r 0 x 1 4                 4                                   C o u n t   2                                   U n k n o w n   I n t e g e r 0 x 1 8                 1 6                                 T a b l e   D e s c r i p t o r   1             T a b l e   d e s c r i p t o r 0 x 2 8                 1 6                                 T a b l e   D e s c r i p t o r   2             T a b l e   d e s c r i p t o r 0 x 3 8                 1 6                                 T a b l e   D e s c r i p t o r   3             T a b l e   d e s c r i p t o r 0 x 4 8                 1 6                                 T a b l e   D e s c r i p t o r   4             T a b l e   d e s c r i p t o r 0 x 5 8                 1 6                                 T a b l e   D e s c r i p t o r   5             T a b l e   d e s c r i p t o r 0 x 6 8                 1 6                                 T a b l e   D e s c r i p t o r   6             T a b l e   d e s c r i p t o r O f f s e t         L e n g t h         F i e l d         D e s c r i p t i o n                     ( b y t e s ) - - - - - - -       - - - - - - - -     - - - - - - -     - - - - - - - - - - - - - - - - - - - 0 x 0               4                   T y p e           T y p e   o f   t a b l e   d e s c r i p t o r 0 x 4               4                   S i z e           S i z e   o f   t h e   r e c o r d   d e s c r i b e d 0 x 8               4                   O f f s e t       O f f s e t   o f   t h e   r e c o r d   d e s c r i b e d   r e l a t i v e   t o   t h e   b e g i n n i n g   o f   f i l e 0 x C               4                   C o u n t         N u m b e r   o f   r e c o r d s   p r e s e n t   a t   o f f s e t O f f s e t       L e n g t h   ( b y t e s )         F i e l d                     D e s c r i p t i o n - - - - - -       - - - - - - - - - - - - - -         - - - - - - - - - - - -       - - - - - - - - - - - - - - - - - - - 0 x 0             N                                   C o n t e n t                 T e x t   c o n t e n t   o f   t h e   r e c o r d ;   a   n u l l   t e r m i n a t e d   U N I C O D E   s t r i n g 0 x 0 + N         0 x 4                               R e c o r d I d               A   r e c o r d   i d e n t i f i e r   f o r   t h e   t e x t   r e c o r d O f f s e t             L e n g t h   ( b y t e s )         F i e l d                 D e s c r i p t i o n - - - - - - - - -       - - - - - - - - - - - - - -         - - - - - - - - - -       - - - - - - - - - - - - - - - - - - - 0 x 0                   4                                   R e c o r d I d           A   r e c o r d   i d e n t i f i e r   f o r   t h e   i n d e x   r e c o r d 0 x 4                   4                                   O f f s e t               O f f s e t   o f   t h e   r e c o r d   r e l a t i v e   t o   t h e   b e g i n n i n g   o f   t h e   f i l e O f f s e t             L e n g t h       F i e l d                             D e s c r i p t i o n - - - - - - - - -       - - - - - -       - - - - - - - - - - - - - - -         - - - - - - - - - - - - - - - - - - - 0 x 0                   4                 U n k n o w n 1                       U n k n o w n   f i e l d
R e c o r d P r o p e r t i e s P r o p e r t y C o u n t R e c o r d P r o p e r t i e s   0 x 1 0 0 0 P t y p B i n a r y   C O U N T     1 6     W A B   P t y p E m b e d d e d T a b l e   ( 0 x 0 0 0 0 0 0 0 D )   ( C O M )   0 x 4                   4                 U n k n o w n 2                       U n k n o w n   f i e l d 0 x 8                   4                 R e c o r d I d                       A   r e c o r d   i d e n t i f i e r   f o r   t h e   W A B   r e c o r d 0 x C                   4                 P r o p e r t y C o u n t             T h e   n u m b e r   o f   p r o p e r t i e s   c o n t a i n e d   i n   R e c o r d P r o p e r t i e s 0 x 1 0                 4                 U n k n o w n 3                       U n k n o w n   f i e l d   0 x 1 4                 4                 U n k n o w n 4                       U n k n o w n   f i e l d   0 x 1 8                 4                 U n k n o w n 5                       U n k n o w n   f i e l d   0 x 1 C                 4                 D a t a L e n                         T h e   l e n g t h   o f   t h e   R e c o r d P r o p e r t i e s   f i e l d   ( M ) 0 x 2 0                 M                 R e c o r d P r o p e r t i e s       S u c c e s s i o n   o f   s u b p r o p e r t i e s   b e l o n g i n g   t o   t h e   W A B   r e c o r d O f f s e t             L e n g t h   ( b y t e s )         F i e l d               D e s c r i p t i o n - - - - - - - - -       - - - - - - - - - - - - - -         - - - - - - - - -       - - - - - - - - - - - - - - - - - - - 0 x 0                   0 x 2                               T a g                   A   p r o p e r t y   t a g   d e s c r i b i n g   t h e   t y p e   o f   t h e   c o n t e n t s 0 x 2                   0 x 2                               U n k n o w n           U n k n o w n   f i e l d 0 x 4                   0 x 4                               S i z e                 S i z e   i n   b y t e s   o f   V a l u e   m e m b e r   ( X ) 0 x 8                   X                                   V a l u e               P r o p e r t y   v a l u e   o r   c o n t e n t T a g   N a m e                 T a g   V a l u e         L e n g t h             D e s c r i p t i o n                                                           ( b y t e s ) - - - - - - - - -               - - - - - - - - - - -     - - - - - - - - -       - - - - - - - - - - - - - - - - - - - P t y p I n t e g e r 1 6       0 x 0 0 0 0 0 0 0 2       2                       A   1 6 - b i t   i n t e g e r P t y p I n t e g e r 3 2       0 x 0 0 0 0 0 0 0 3       4                       A   3 2 - b i t   i n t e g e r P t y p F l o a t i n g 3 2     0 x 0 0 0 0 0 0 0 4       4                       A   3 2 - b i t   f l o a t i n g   p o i n t   n u m b e r P t y p F l o a t i n g 6 4     0 x 0 0 0 0 0 0 0 5       8                       A   6 4 - b i t   f l o a t i n g   p o i n t   n u m b e r P t y p B o o l e a n           0 x 0 0 0 0 0 0 0 B       2                       B o o l e a n ,   r e s t r i c t e d   t o   1   o r   0 P t y p S t r i n g 8           0 x 0 0 0 0 0 0 1 E       V a r i a b l e         A   s t r i n g   o f   m u l t i b y t e   c h a r a c t e r s   i n   e x t e r n a l l y   s p e c i f i e d                                                                                   e n c o d i n g   w i t h   t e r m i n a t i n g   n u l l   c h a r a c t e r   ( s i n g l e   0   b y t e ) P t y p B i n a r y             0 x 0 0 0 0 0 1 0 2       V a r i a b l e         A   C O U N T   f i e l d   f o l l o w e d   b y   t h a t   m a n y   b y t e s P t y p S t r i n g             0 x 0 0 0 0 0 0 1 F       V a r i a b l e         A   s t r i n g   o f   U n i c o d e   c h a r a c t e r s   i n   U T F - 1 6 L E   f o r m a t   e n c o d i n g w i t h   t e r m i n a t i n g   n u l l   c h a r a c t e r   ( 0 x 0 0 0 0 ) . P t y p G u i d                 0 x 0 0 0 0 0 0 4 8       1 6                     A   G U I D   w i t h   D a t a 1 ,   D a t a 2 ,   a n d   D a t a 3   f i l d s   i n   l i t t l e - e n d i a n P t y p T i m e                 0 x 0 0 0 0 0 0 4 0       8                       A   6 4 - b i t   i n t e g e r   r e p r e s e n t i n g   t h e   n u m b e r   o f   1 0 0 - n a n o s e c o n d                                                                                   i n t e r v a l s   s i n c e   J a n u a r y   1 ,   1 6 0 1 P t y p E r r o r C o d e       0 x 0 0 0 0 0 0 0 A       4                       A   3 2 - b i t   i n t e g e r   e n c o d i n g   e r r o r   i n f o r m a t i o n
P t y p N u l l   ( 0 x 0 0 0 0 0 0 0 1 ) P t y p U n s p e c i f i e d   ( 0 x 0 0 0 0 0 0 0 0 ) :   A n y 0 x 1 0 0 0 V a l u e N e s t e d P r o p C o u n t   S i m p l e   P t y p M u l t i p l e I n t e g e r 1 6 P t y p M u l t i p l e I n t e g e r 3 2 P t y p M u l t i p l e G u i d P t y p M u l t i p l e T i m e N e s t e d P r o p C o u n t N e s t e d P r o p C o u n t   4 P t y p M u l t i p l e I n t e g e r 3 2 1 6   3 2   P t y p M u l t i p l e S t r i n g 8 P t y p M u l t i p l e B i n a r y P t y p M u l t i p l e S t r i n g V a l u e N e s t e d P r o p C o u n t S i z e   S i m p l e   V a l u e   U n i c o d e   f o o b a r N e s t e d P r o p C o u n t   2 P t y p M u l t i p l e S t r i n g 1 4   0 0   0 0   0 0 V a l u e   f o o 0 6   0 0   0 0   0 0   6 6   0 0   6 f   0 0   6 f   0 0 b a r 0 6   0 0   0 0   0 0   6 2   0 0   6 1   0 0   7 2   0 0 O f f s e t     L e n g t h           F i e l d                           D e s c r i p t i o n                 ( b y t e s ) - - - - - -     - - - - - - - - -     - - - - - - - - - - - - - - - - -   - - - - - - - - - - - - - - - - - - - 0 x 0           0 x 2                 T a g                               A   p r o p e r t y   t a g   d e s c r i b i n g   t h e   t y p e   o f   t h e   c o n t e n t s 0 x 2           0 x 2                 U n k n o w n                       U n k n o w n   f i e l d 0 x 4           0 x 4                 N e s t e d P r o p C o u n t       N u m b e r   o f   n e s t e d   p r o p e r t i e s   c o n t a i n e d   i n   t h e   c u r r e n t   W A B   p r o p e r t y 0 x 8           0 x 4                 S i z e                             S i z e   i n   b y t e s   o f   V a l u e   m e m b e r   ( X ) 0 x C           X                     V a l u e                           P r o p e r t y   v a l u e   o r   c o n t e n t T a g   N a m e                                 T a g   V a l u e - - - - - - - - -                               - - - - - - - - - - P t y p M u l t i p l e I n t e g e r 1 6       0 x 0 0 0 0 1 0 0 2 P t y p M u l t i p l e I n t e g e r 3 2       0 x 0 0 0 0 1 0 0 3 P t y p M u l t i p l e S t r i n g 8           0 x 0 0 0 0 1 0 1 E P t y p M u l t i p l e B i n a r y             0 x 0 0 0 0 1 1 0 2 P t y p M u l t i p l e S t r i n g             0 x 0 0 0 0 1 0 1 F P t y p M u l t i p l e G u i d                 0 x 0 0 0 0 1 0 4 8 P t y p M u l t i p l e T i m e                 0 x 0 0 0 0 1 0 4 0
  W A B     W i n d o w s   簿   W A B     W i n d o w s   簿 W A B O b j e c t I n t e r n a l : : I m p o r t ( ) I m p o r t W A B F i l e ( )   W A B   I m p o r t W A B F i l e ( ) I m p o r t C o n t a c t ( ) C W A B S t o r a g e : : R e a d R e c o r d ( ) R e a d R e c o r d W i t h o u t L o c k i n g ( ) H r G e t P r o p A r r a y F r o m F i l e R e c o r d ( ) P r o p e r t y C o u n t D a t a L e n . H r G e t P r o p A r r a y F r o m F i l e R e c o r d ( ) S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( )   H r G e t P r o p A r r a y F r o m B u f f e r ( ) H r G e t P r o p A r r a y F r o m B u f f e r ( ) S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( ) S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( ) H r G e t P r o p A r r a y F r o m B u f f e r ( ) H r G e t P r o p A r r a y F r o m B u f f e r ( ) H r G e t P r o p A r r a y F r o m B u f f e r ( )   使 [ N ] [ ] H r G e t P r o p A r r a y F r o m F i l e R e c o r d   [ 1 ]   S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( )   [ 3 ]   H r G e t P r o p A r r a y F r o m B u f f e r ( )   [ 2 ]   S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( ) i f   (   ! ( u n s i g n e d   i n t ) S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( w a b _ b u f f e r _ f u l l ,   H I D W O R D ( u B y t e s [ 1 ] ) ,   w a b _ b u f f e r [ 3 ] )   )     { [ 2 ]         r e s u l t   =   0 x 8 0 0 4 0 1 1 b ;                 / /   E r r o r g o t o   L A B E L _ 2 5 ;                             / /   R e t u r n   p r e m a t u r e l y     } [ 3 ]     r e s u l t   =   H r G e t P r o p A r r a y F r o m B u f f e r ( w a b _ b u f f e r _ f u l l ,   H I D W O R D ( u B y t e s [ 1 ] ) ,   w a b _ b u f f e r [ 3 ] ,   0 ,   a 7 ) ;         _ _ i n t 6 4   _ _ f a s t c a l l   S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( u n s i g n e d   _ _ i n t 8   * b u f f e r _ p t r ,   u n s i g n e d   i n t   b u f f e r _ l e n g t h ,   i n t   h e a d e r _ d w o r d _ 3 ) { u n s i g n e d   i n t   s e c u r i t y _ c h e c k _ r e s u l t ;   / /   e b x u n s i g n e d   i n t   r e m a i n i n g _ b u f f e r _ b y t e s ;   / /   e d i i n t   l _ h e a d e r _ d w o r d _ 3 ;   / /   e r 1 5 u n s i g n e d   _ _ i n t 8   * p t r _ t o _ b u f f e r ;   / /   r 9 i n t   c u r r e n t _ p r o p e r t y _ t a g ;   / /   e c x             _ _ i n t 6 4   c _ d w o r d _ 2 ;   / /   r 8 u n s i g n e d   i n t   v 9 ;   / /   e d i i n t   V A ;   / /   e c x i n t   V B ;   / /   e c x i n t   V C ;   / /   e c x i n t   V D ;   / /   e c x i n t   V E ;   / /   e c x i n t   V F ;   / /   e c x
i n t   V G ;   / /   e c x i n t   V H ;   / /   e c x s i g n e d   _ _ i n t 6 4   r e s ;   / /   r a x             _ D W O R D   * p t r _ t o _ d w o r d _ 1 ;   / /   r b p u n s i g n e d   _ _ i n t 8   * p t r _ t o _ d w o r d _ 0 ;   / /   r 1 4 u n s i g n e d   i n t   d w o r d _ 2 ;   / /   e a x u n s i g n e d   i n t   v 2 2 ;   / /   e d i i n t   v 2 3 ;   / /   e s i i n t   v 2 4 ;   / /   e c x u n s i g n e d   _ _ i n t 8   * c _ p t r _ t o _ p r o p e r t y _ v a l u e ;   / /   [ r s p + 6 0 h ]   [ r b p + 8 h ] u n s i g n e d   i n t   v 2 7 ;   / /   [ r s p + 6 8 h ]   [ r b p + 1 0 h ] u n s i g n e d   i n t   c o p y _ d w o r d _ 2 ;   / /   [ r s p + 7 0 h ]   [ r b p + 1 8 h ]             s e c u r i t y _ c h e c k _ r e s u l t   =   0 ;             r e m a i n i n g _ b u f f e r _ b y t e s   =   b u f f e r _ l e n g t h ;             l _ h e a d e r _ d w o r d _ 3   =   h e a d e r _ d w o r d _ 3 ;             p t r _ t o _ b u f f e r   =   b u f f e r _ p t r ; i f   (   h e a d e r _ d w o r d _ 3   )                                                         { w h i l e   (   r e m a i n i n g _ b u f f e r _ b y t e s   >   4   )                                 { [ 4 ] i f   (   * ( _ D W O R D   * ) p t r _ t o _ b u f f e r   &   0 x 1 0 0 0   )                         { [ 5 ]                         c u r r e n t _ p r o p e r t y _ t a g   =   * ( u n s i g n e d   _ _ i n t 1 6   * ) p t r _ t o _ b u f f e r ; i f   (   c u r r e n t _ p r o p e r t y _ t a g   = =   0 x 1 1 0 2   | |                                                                           ( u n s i g n e d   i n t ) ( c u r r e n t _ p r o p e r t y _ t a g   -   0 x 1 0 1 E )   < =   1   )                           {                                                   [ 6 ]                             p t r _ t o _ d w o r d _ 1   =   p t r _ t o _ b u f f e r   +   4 ;                                                                       p t r _ t o _ d w o r d _ 0   =   p t r _ t o _ b u f f e r ; i f   (   r e m a i n i n g _ b u f f e r _ b y t e s   <   0 x C   )                                           r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;                                                                               d w o r d _ 2   =   * ( ( _ D W O R D   * ) p t r _ t o _ b u f f e r   +   2 ) ;                             v 2 2   =   r e m a i n i n g _ b u f f e r _ b y t e s   -   0 x C ; i f   (   d w o r d _ 2   >   v 2 2   )                                                                           r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;                                                                               p t r _ t o _ b u f f e r   + =   1 2 ;                             c o p y _ d w o r d _ 2   =   d w o r d _ 2 ;                             r e m a i n i n g _ b u f f e r _ b y t e s   =   v 2 2   -   d w o r d _ 2 ;                             c _ p t r _ t o _ p r o p e r t y _ v a l u e   =   p t r _ t o _ b u f f e r ;                                
                            v 2 3   =   0 ;                                                                                                 i f   (   * p t r _ t o _ d w o r d _ 1   >   0 u   )                             { w h i l e   (   ( u n s i g n e d   i n t ) S e c u r i t y C h e c k S i n g l e V a l u e (                                                                                 * ( _ D W O R D   * ) p t r _ t o _ d w o r d _ 0 ,                                                                                 & c _ p t r _ t o _ p r o p e r t y _ v a l u e ,                                                                                 © _ d w o r d _ 2 )   )                                 { i f   (   ( u n s i g n e d   i n t ) + + v 2 3   > =   * p t r _ t o _ d w o r d _ 1   )                                                   {                                                                                                                                               p t r _ t o _ b u f f e r   =   c _ p t r _ t o _ p r o p e r t y _ v a l u e ; g o t o   L A B E L _ 3 3 ;                                     }                                 } r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;                             }                         } e l s e                         { [ 7 ] i f   (   r e m a i n i n g _ b u f f e r _ b y t e s   <   0 x C   ) r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;                             c _ d w o r d _ 2   =   * ( ( u n s i g n e d   i n t   * ) p t r _ t o _ b u f f e r   +   2 ) ;                                           v 9   =   r e m a i n i n g _ b u f f e r _ b y t e s   -   1 2 ; i f   (   ( u n s i g n e d   i n t ) c _ d w o r d _ 2   >   v 9   )                                           r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;                                                                               r e m a i n i n g _ b u f f e r _ b y t e s   =   v 9   -   c _ d w o r d _ 2 ;                             V A   =   c u r r e n t _ p r o p e r t y _ t a g   -   0 x 1 0 0 2 ;                                           i f   (   V A   )                             {                                 V B   =   V A   -   1 ; i f   (   V B   & &   ( V C   =   V B   -   1 )   ! =   0   )                                 {                                     V D   =   V C   -   1 ; i f   (   V D   & &   ( V E   =   V D   -   1 )   ! =   0   & &   ( V F   =   V E   -   1 )   ! =   0   & &   ( V G   =   V F   -   1 3 )   ! =   0   & &   ( V H   =   V G   -   4 4 )   ! =   0   )                                         r e s   =   V H   = =   8   ?   1 6 i 6 4   :   0 i 6 4 ; e l s e                                         r e s   =   8 i 6 4 ;                                 } e l s e                                 {                                     r e s   =   4 i 6 4 ;                                 }                             }
  [ 4 ]     0 x 1 0 0 0     [ 8 ]   1 .     4 2 .   S e c u r i t y C h e c k S i n g l e V a l u e ( ) S e c u r i t y C h e c k S i n g l e V a l u e ( ) 便 S e c u r i t y C h e c k P r o p A r r a y B u f f e r ( ) 3 .     0 x 1 0 0 0     [ 5 ]     0 x 1 1 0 2   (   P t y p M u l t i p l e B i n a r y   )     0 x 1 0 1 f   (   P t y p M u l t i p l e S t r i n g   ) [ 6 ]   1 .     0 x C   e l s e                             {                                 r e s   =   2 i 6 4 ;                             } i f   (   ( u n s i g n e d   i n t ) c _ d w o r d _ 2   /   * ( ( _ D W O R D   * ) p t r _ t o _ b u f f e r   +   1 )   ! =   r e s   )   r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;                                                                                                             p t r _ t o _ b u f f e r   + =   c _ d w o r d _ 2   +   1 2 ;                         }                     } e l s e                     {                                                                                 [ 8 ] i f   (   r e m a i n i n g _ b u f f e r _ b y t e s   <   4   )               r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;                         v 2 4   =   * ( _ D W O R D   * ) p t r _ t o _ b u f f e r ;                                           c _ p t r _ t o _ p r o p e r t y _ v a l u e   =   p t r _ t o _ b u f f e r   +   4 ; / /   n e w   e x e :   v 1 3   =   b u f f e r _ p t r   +   4 ;                         v 2 7   =   r e m a i n i n g _ b u f f e r _ b y t e s   -   4 ;               i f   (   ! ( u n s i g n e d   i n t ) S e c u r i t y C h e c k S i n g l e V a l u e ( v 2 4 ,   & c _ p t r _ t o _ p r o p e r t y _ v a l u e ,   & v 2 7 )   ) r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;                         r e m a i n i n g _ b u f f e r _ b y t e s   =   v 2 7 ;                         p t r _ t o _ b u f f e r   =   c _ p t r _ t o _ p r o p e r t y _ v a l u e ;                     }         L A B E L _ 3 3 : i f   (   ! - - l _ h e a d e r _ d w o r d _ 3   ) b r e a k ;                 }             } i f   (   ! l _ h e a d e r _ d w o r d _ 3   )                 s e c u r i t y _ c h e c k _ r e s u l t   =   1 ; r e t u r n   s e c u r i t y _ c h e c k _ r e s u l t ;         }
2 .   S i z e 3 .     S e c u r i t y C h e c k S i n g l e V a l u e ( ) 4 .   5 .   6 .     0 x 1 1 0 2   ( P t y p M u l t i p l e B i n a r y )     0 x 1 0 1 f   ( P t y p M u l t i p l e S t r i n g )   [ 7 ]   1 .     0 x C   2 .   3 .   4 .   N e s t e d P r o p C o u n t 5 .   6 .   7 .     0 x 0 使   4   使 N e s t e d P r o p C o u n t S i z e   2 N e s t e d P r o p C o u n t S i z e   H r G e t P r o p A r r a y F r o m F i l e R e c o r d ( ) H r G e t P r o p A r r a y F r o m B u f f e r ( ) _ S P r o p V a l u e _ S P r o p V a l u e L o c a l A l l o c   s i z e o f ( _ S P r o p V a l u e ) i f   (   ! p r o p e r t y _ a r r a y _ r   )         {                 r e t   =   - 2 1 4 7 0 2 4 8 0 9 ; g o t o   L A B E L _ 7 1 ;         }         * p r o p e r t y _ a r r a y _ r   =   0 i 6 4 ;         h e a d e r _ d w o r d _ 3 _ 1   =   s e t _ t o _ z e r o   +   h e a d e r _ d w o r d _ 3 ; [ 9 ] i f   (   ( u n s i g n e d   i n t ) h e a d e r _ d w o r d _ 3 _ 1   <   h e a d e r _ d w o r d _ 3                           | |   ( u n s i g n e d   i n t ) h e a d e r _ d w o r d _ 3 _ 1   >   0 x A A A A A A A             | |   ( v 1 0   =   ( u n s i g n e d   i n t ) h e a d e r _ d w o r d _ 3 _ 1 ,                                                                                   p r o p e r t y _ a r r a y   =   ( s t r u c t   _ S P r o p V a l u e   * ) L o c a l A l l o c ( 0 x 4 0 u , 0 x 1 8   *   h e a d e r _ d w o r d _ 3 _ 1 ) , / /   s i z e o f ( _ S P r o p V a l u e )   *   n _ p r o p e r t i e s _ i n _ b i n a r y                 ( * p r o p e r t y _ a r r a y _ r   =   p r o p e r t y _ a r r a y )   = =   0 i 6 4 )   )         {                 E R R O R _ I N S U F I C I E N T _ M E M O R Y :
  [ 9 ]   s i z e o f ( _ S P r o p V a l u e )   *   n _ p r o p e r t i e s _ i n _ b i n a r y   1 使                   E R R O R _ I N S U F I C I E N T _ M E M O R Y :                 r e t   =   0 x 8 0 0 7 0 0 0 E ; g o t o   L A B E L _ 7 1 ;         } i f   (   ! _ b i t t e s t ( ( c o n s t   s i g n e d   i n t   * ) ¤ t _ p r o p e r t y _ t a g ,   0 x C u )   ) { i f   (   v 1 6   <   4   ) b r e a k ; d w o r d _ 1   =   w a b _ u l o n g _ b u f f e r _ f u l l [ 1 ] ; p t r _ t o _ d w o r d _ 2   =   ( c h a r   * ) ( w a b _ u l o n g _ b u f f e r _ f u l l   +   2 ) ; v 3 8   =   v 1 6   -   4 ; i f   (   ( u n s i g n e d   i n t ) d w o r d _ 1   >   v 3 8   ) b r e a k ; c u r r e n t _ p r o p e r t y _ t a g   =   ( u n s i g n e d   _ _ i n t 1 6 ) c u r r e n t _ p r o p e r t y _ t a g ; i f   (   ( u n s i g n e d   _ _ i n t 1 6 ) c u r r e n t _ p r o p e r t y _ t a g   >   0 x B u   ) { [ 1 0 ] v 3 9   =   c u r r e n t _ p r o p e r t y _ t a g   -   0 x 1 E ; i f   (   ! v 3 9   ) g o t o   L A B E L _ 7 9 ; v 4 0   =   v 3 9   -   1 ; i f   (   ! v 4 0   ) g o t o   L A B E L _ 7 9 ; v 4 1   =   v 4 0   -   0 x 2 1 ; i f   (   ! v 4 1   ) g o t o   L A B E L _ 5 6 ; v 4 2   =   v 4 1   -   8 ; i f   (   v 4 2   ) { i f   (   v 4 2   ! =   0 x B A   ) g o t o   L A B E L _ 5 6 ; v 4 3   =   d w o r d _ 1 ; ( * p r o p e r t y _ a r r a y _ r ) [ p _ i d x ] . V a l u e . b i n . l p b   =   ( L P B Y T E ) L o c a l A l l o c ( 0 x 4 0 u ,   d w o r d _ 1 ) ; i f   (   ! ( * p r o p e r t y _ a r r a y _ r ) [ p _ i d x ] . V a l u e . b i n . l p b   ) g o t o   E R R O R _ I N S U F I C I E N T _ M E M O R Y ; ( * p r o p e r t y _ a r r a y _ r ) [ p _ i d x ] . V a l u e . l   =   d w o r d _ 1 ; v 4 4   =   * ( & ( * p r o p e r t y _ a r r a y _ r ) [ p _ i d x ] . V a l u e . a t   +   1 ) ; }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则