[14373] 2019-07-21_使用Cutter和Radare2对APT32恶意程序流程图进行反混淆处理

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-18
2019-07-21_使用Cutter和Radare2对APT32恶意程序流程图进行反混淆处理 使 C u t t e r R a d a r e 2 A P T 3 2 A l p h a _ h 4 c k   F r e e B u f   2 0 1 9 - 0 7 - 2 1 O c e a n   L o t u s   G r o u p A P T 3 2 A P T 3 2 M i m i k a t z C o b a l t   S t r i k e S h e l l C o d e 使 使 使 A P T 3 2 广 使 C u t t e r - r a d a r e 2 C u t t e r C u t t e r L i n u x m a c O S W i n d o w s C u t t e r C u t t e r 4 8 6 b e 6 b 1 e c 7 3 d 9 8 f d d 3 9 9 9 a b e 2 f a 0 4 3 6 8 9 3 3 a 2 e c A P T 3 2 使 1 1 5 f 3 c b 5 b d f b 2 f f e 5 1 6 8 e c b 3 6 b 9 a e d 5 4 3 6 0 V B A r u n d l l 3 2 . e x e S h e l l c o d e S h e l l c o d e D L L D L L C 2 使 P E D L L D L L H T T P P r o v . d l l C 2 C 2 S h e l l c o d e 使 使 使 A P T 3 2 使
F a l s e j o   j n o j n e   j e   使
P y t h o n i n i t r e d a r e 2 r 2 p i p e i m p o r t r 2 p i p e C u t t e r c u t t e r i m p o r t   c u t t e r 使 r a d a r e 2 r 2 p i p e . c m d ( ) p i p e . c m d j ( j ) r a d a r e 2 J S O N 使 a f b j J S O N c l e a n j u n k b l o c k s ( ) 使 使 R a d a r e 2 使 使 C u t t e r c l a s s   G r a p h D e o b f u s c a t o r :       d e f   _ _ i n i t _ _ ( s e l f ,   p i p e ) :               " " " a n   i n i t i a l i z a t i o n f u n c t i o n   f o r   t h e   c l a s s                           A r g u m e n t s :                       p i p e   { r 2 p i p e }   - -   a n   i n s t a n c e   o f r 2 p i p e   o r   C u t t e r ' s   w r a p p e r               " " " d e f   c l e a n _ j u n k _ b l o c k s ( s e l f ) :               " " " S e a r c h   a   g i v e n f u n c t i o n   f o r   j u n k   b l o c k s ,   r e m o v e   t h e m   a n d   f i x   t h e   f l o w .               " " "               #   G e t   a l l   t h e   b a s i c   b l o c k s   o f   t h e f u n c t i o n               b l o c k s   =   s e l f . p i p e . c m d j ( " a f b j   @ $ F " )               i f   n o t   b l o c k s :                       p r i n t ( " [ X ]   N o   b l o c k s   f o u n d .   I s   i t   a f u n c t i o n ? " )                       r e t u r n               m o d i f i e d   =   F a l s e               #   I t e r a t e   o v e r   a l l   t h e   b a s i c   b l o c k s   o f t h e   f u n c t i o n               f o r   b l o c k   i n   b l o c k s :                       #   d o   s o m e t h i n g d e f   g e t _ f a i l _ b l o c k ( s e l f ,   b l o c k ) :               " " " R e t u r n   t h e   b l o c k   t o w h i c h   a   b l o c k   b r a n c h e s   i f   t h e   c o n d i t i o n   i s   f a i l s                           A r g u m e n t s :                       b l o c k   { b l o c k _ c o n t e x t }   - -   A   J S O N r e p r e s e n t a t i o n   o f   a   b l o c k                           R e t u r n s :                       b l o c k _ c o n t e x t   - -   T h e   b l o c k   t o   w h i c h t h e   b r a n c h   f a i l s .   I f   n o t   e x i s t s ,   r e t u r n s   N o n e               " " " d e f   c o n t a i n s _ m e a n i n g f u l _ i n s t r u c t i o n s   ( s e l f , b l o c k ) :               ' ' ' C h e c k   i f   a   b l o c k   c o n t a i n s   m e a n i n g f u l i n s t r u c t i o n s   ( r e f e r e n c e s ,   c a l l s ,   s t r i n g s , . . . )                           A r g u m e n t s :                       b l o c k   { b l o c k _ c o n t e x t }   - -   A   J S O N o b j e c t   w h i c h   r e p r e s e n t s   a   b l o c k                           R e t u r n s :                       b o o l   - -   T r u e   i f   t h e   b l o c k   c o n t a i n s m e a n i n g f u l   i n s t r u c t i o n s ,   F a l s e   o t h e r w i s e               ' ' ' j m p _ p a i r s   =   [               [ ' j n o ' ,   ' j o ' ] ,               [ ' j n p ' ,   ' j p ' ] ,               [ ' j b ' ,   ' j n b ' ] ,               [ ' j l ' ,   ' j n l ' ] ,               [ ' j e ' ,   ' j n e ' ] ,               [ ' j n s ' ,   ' j s ' ] ,               [ ' j n z ' ,   ' j z ' ] ,               [ ' j c ' ,   d e f   c l e a n _ j u n k _ b l o c k s ( s e l f ) :               " " " S e a r c h   a   g i v e n f u n c t i o n   f o r   j u n k   b l o c k s ,   r e m o v e   t h e m   a n d   f i x   t h e   f l o w .               " " "               #   G e t   a l l   t h e   b a s i c   b l o c k s   o f   t h e f u n c t i o n               b l o c k s   =   s e l f . p i p e . c m d j ( " a f b j   @ $ F " )               i f   n o t   b l o c k s :                       p r i n t ( " [ X ]   N o   b l o c k s   f o u n d .   I s i t   a   f u n c t i o n ? " )                       r e t u r n               m o d i f i e d   =   F a l s e               #   I t e r a t e   o v e r   a l l   t h e   b a s i c   b l o c k s   o f t h e   f u n c t i o n               f o r   b l o c k   i n   b l o c k s :                       f a i l _ b l o c k   = s e l f . g e t _ f a i l _ b l o c k ( b l o c k )                       i f   n o t   f a i l _ b l o c k   o r                         n o t   s e l f . i s _ s u c c e s s i v e _ f a i l ( b l o c k , f a i l _ b l o c k )   o r                       s e l f . c o n t a i n s _ m e a n i n g f u l _ i n s t r u c t i o n s ( f a i l _ b l o c k )   o r                         n o t s e l f . i s _ o p p o s i t e _ c o n d i t i o n a l ( s e l f . g e t _ l a s t _ m n e m _ o f _ b l o c k ( b l o c k ) , s e l f . g e t _ l a s t _ m n e m _ o f _ b l o c k ( f a i l _ b l o c k ) ) :                               c o n t i n u e i f _ _ n a m e _ _   = =   " _ _ m a i n _ _ " :       g r a p h _ d e o b f u s c a t o r   =   G r a p h D e o b f u s c a t o r ( p i p e )       g r a p h _ d e o b f u s c a t o r . c l e a n _ g r a p h ( ) i f c u t t e r _ a v a i l a b l e :       #   T h i s   p a r t   w i l l   b e   e x e c u t e d   o n l y   i f   C u t t e r i s   a v a i l a b l e .       #   T h i s   w i l l   c r e a t e   t h e   c u t t e r   p l u g i n   a n d   U I o b j e c t s   f o r   t h e   p l u g i n       c l a s s G r a p h D e o b f u s c a t o r C u t t e r ( c u t t e r . i f c u t t e r _ a v a i l a b l e :       #   T h i s   p a r t   w i l l   b e   e x e c u t e d   o n l y   i f   C u t t e r i s   a v a i l a b l e .   T h i s   w i l l       #   c r e a t e   t h e   c u t t e r   p l u g i n   a n d   U I   o b j e c t s f o r   t h e   p l u g i n       c l a s s G r a p h D e o b f u s c a t o r C u t t e r ( c u t t e r . C u t t e r P l u g i n ) :               n a m e   =  

S H A 2 5 6 A P T 3 2 - * c h e c k p o i n t F r e e B u f . C O M B e 6 d 5 9 7 3 4 5 2 2 4 8 c b 1 8 9 4 9 7 1 1 6 4 5 9 9 0 b 6 a 5 6 e 7 4 4 2 d c 3 0 c c 4 8 a 6 0 7 a 2 a f e 7 d 8 e c 6 6 8 d 7 4 d 5 4 4 3 9 6 b 5 7 e 6 f a a 4 f 8 f d f 9 6 a 1 a 5 e 3 0 b 1 9 6 d 5 6 c 1 5 f 7 c f 0 5 7 6 7 a 4 0 6 7 0 8 a 6 b 2 " " " A   p l u g i n   f o r   C u t t e r   a n d   R a d a r e 2   t o   d e o b f u s c a t e   A P T 3 2   f l o w   g r a p h s T h i s i s   a   p y t h o n   p l u g i n   f o r   C u t t e r   t h a t   i s   c o m p a t i b l e   a s   a n   r 2 p i p e   s c r i p t   f o r r a d a r e 2 a s   w e l l .   T h e   p l u g i n   w i l l   h e l p   r e v e r s e   e n g i n e e r s   t o   d e o b f u s c a t e   a n d   r e m o v e j u n k b l o c k s   f r o m   A P T 3 2   ( O c e a n   L o t u s )   s a m p l e s . "

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

本版积分规则