[13903] 2019-03-23_浅谈MFC类CrackMe中消息处理函数查找方法

文档创建者:s7ckTeam
浏览次数:5
最后更新:2025-01-18
2019-03-23_浅谈MFC类CrackMe中消息处理函数查找方法 M F C C r a c k M e k d s j   F r e e B u f   2 0 1 9 - 0 3 - 2 3 C r a c k M e M F C 便 便 使 使 C r a c k M e M F C " " M F C [ 1 ] p f n n I D I D A F X M S G M A P E N T R Y p f n A F X _ M S G M A P I D A F X _ M S G M A P s t r u c t   A F X _ M S G M A P {         A F X _ M S G M A P   *   p B a s e M e s s a g e M a p ;         A F X _ M S G M A P _ E N T R Y   *   l p E n t r i e s ; } s t r u c t   A F X _ M S G M A P _ E N T R Y {         U I N T   n M e s s a g e ;         / / W i n d o w s   M e s s a g e         U I N T   n C o d e                 / / C o n t r o l   c o d e   o r   W M _ N O T I F Y   c o d e         U I N T   n I D ;                   / / c o n t r o l   I D   ( o r   0   f o r   w i n d o w s   m e s s a g e s )         U I N T   n L a s t I D ;           / / u s e d   f o r   e n t r i e s   s p e c i f y i n g   a   r a n g e   o f   c o n t r o l   i d ' s         U I N T   n S i g ;                 / / s i g n a t u r e   t y p e ( a c t i o n )   o r   p o i n t e r   t o   m e s s a g e           A F X _ P M S G   p f n ;           / / r o u t i n e   t o   c a l l   ( o r   s p e c i c a l   v a l u e ) }
使 使 R e s o u r c e H a c k e r R e s o u r c e H a c k e r 3 2 6 4 . r c *   . e x e ; .   d l l ; . r e s ; . m u i R e s o u r c e H a c k e r G U I 使 R e s o u r c e H a c k e r 使 R e s o u r c e H a c k e r C r a c k X X . e x e I D I D I D 1 0 0 2 1 0 0 5 I D 1 6 A F X _ M S G M A P A F X _ M S G M A P A F X _ M S G M A P A F X M S G M A P . r d a t a . r d a t a R T T I A F X M S G M A P M S G _ M A P
G e t M e s s a g e M a p A F X _ M S G M A P G e t M e s s a g e M a p G e t M e s s a g e M a p G e t M e s s a g e M a p 3 . 1   A F X M S G M A P G e t M e s s a g e M a p A F X M S G M A P _ E N T Y R A F X M S G M A P A F X M S G M A P E N T R Y 0 0 4 4 E 8 8 0   A F X _ M S G M A P 0 0 4 4 E 8 8 8   A F X M S G M A P E N T R Y 1 0 0 4 4 E 8 A 0   A F X M S G M A P E N T R Y 2 . . . . . . 便 p B a s e M e s s a g e M a p G e t M e s s a g e M a p G e t M e s s a g e M a p A F X M S G M A P 使 M e s s a g e M a p A F X M S G M A P A F X _ M S G M A P . r d a t a 4 + 4 D W O R D A F X M S G M A P - > l p E n t r i e s + 8 A F X M S G M A P _ E N T R Y A F X M S G M A P _ E N T Y R 0 A F X M S G M A P _ E N T R Y p f n p f n 0 i d c A F X _ M S G M A P i d c                                         p B a s e M e s s a g e M a p = 0 0 4 1 A E 2 7                                         l p E n t r i e s = 0 0 4 4 E 8 8 8                                         n M e s s a g e                                         n C o d e                                         n I D                                         n L a s t I D                                                 n S i g                                         p f n . t e x t : 0 0 4 1 A E 2 7   s u b _ 4 1 A E 2 7             p r o c   n e a r                               ;   D A T A   X R E F :   . r d a t a : o f f _ 4 4 E 8 8 0 o . t e x t : 0 0 4 1 A E 2 7                                                                                   ;   . r d a t a : 0 0 4 4 E F D C o   . . . . t e x t : 0 0 4 1 A E 2 7                                   m o v           e a x ,   o f f s e t   o f f _ 4 4 F 1 2 0   . t e x t : 0 0 4 1 A E 2 C                                   r e t n . t e x t : 0 0 4 1 A E 2 C   s u b _ 4 1 A E 2 7             e n d p
使 A F X M S G M A P - - > p B a s e M e s s a g e M a p G e t M e s s a g e M a p A F X M S G M A P 0 I D A F X M S G M A P E N T R Y - - > n I D I D C r a c k M e 1 0 0 2 1 0 0 5 s t a r t R d a t a V a s i z e s t a r t V a l i d V a e n d V a l i d V a 3 . 2   G e t M e s s a g e M a p 3 . 1 G e t M e s s a g e M a p A F X M S G M A P G e t M e s s a g e M a p 使 A F X M S G M A P 使 G e t M e s s a g e M a p [ 2 ] O n W n d M s g G e t M e s s a g e M a p O n W n d M s g # i n c l u d e   < i d c . i d c > s t a t i c   N o t E n d A d d r ( p A d d r ) {   a u t o   i = 0 ;   f o r   ( i = 0 ; i < 6 ; i + + ) {     i f   ( D w o r d ( i * 4 + p A d d r ) ! = 0 )       r e t u r n   1 ;     / / n o t   e n d   }   r e t u r n   0 ;         / / r e a c h   t h e   e n d } s t a t i c   i s M s g M a p ( c h e c k A d d r , s t a r t V a , e n d V a ) {   a u t o   t m p 1 = D w o r d ( c h e c k A d d r ) ;   a u t o   t m p 2 = D w o r d ( c h e c k A d d r + 4 ) ;   a u t o   p A d d r = c h e c k A d d r + 8 ;   i f   ( t m p 2 = = c h e c k A d d r + 8 ) {     w h i l e ( N o t E n d A d d r ( p A d d r ) ) {       i f ( D w o r d ( p A d d r + 2 0 ) < s t a r t V a | | D w o r d ( p A d d r + 2 0 ) > e n d V a ) { / /         M e s s a g e ( " I n v a l i d   A d d r   a t   % 0 x . n " , p A d d r ) ;         r e t u r n   0 ;       }       p A d d r = p A d d r + 2 4 ;         }     r e t u r n   1 ;   }   r e t u r n   0 ; } s t a t i c   m a i n ( ) {   a u t o   s t a r t R d a t a V a = 0 x 0 0 4 4 E 8 8 0 ;       / / t h e   s t a r t   a d d r   o f   . r d a t a   a u t o   s i z e = 0 x 0 0 0 0 D A A 8 ;           / / t h e   s i z e   o f   . r d a t a   a u t o   s t a r t V a l i d V a = 0 x 0 0 4 0 0 0 0 0 ;       / / c h e c k   t h e   a d d r   i s   v a l i d   o r   n o t   a u t o   e n d V a l i d V a = 0 x 0 0 4 6 A 0 0 0 ;   a u t o   i = 0 ;   f o r ( i = 0 ; i < s i z e ; i = i + 4 ) {     i f ( i s M s g M a p ( i + s t a r t R d a t a V a , s t a r t V a l i d V a , e n d V a l i d V a ) ) {       M e s s a g e ( " F o u n d   P o s s i b l e   M e s s a g e M a p   a t   % 0 x . n " , i + s t a r t R d a t a V a ) ;     }   }       M e s s a g e ( " F i n i s h   s e a r c h i n g . n " ) ;   r e t u r n   0 ; } F o u n d   P o s s i b l e   M e s s a g e M a p   a t   4 4 e 8 8 0 . F o u n d   P o s s i b l e   M e s s a g e M a p   a t   4 4 e e 8 8 . F o u n d   P o s s i b l e   M e s s a g e M a p   a t   4 4 f 1 2 0 . F o u n d   P o s s i b l e   M e s s a g e M a p   a t   4 4 f f 1 0 . F o u n d   P o s s i b l e   M e s s a g e M a p   a t   4 5 1 4 1 0 . F i n i s h   s e a r c h i n g .
G e t M e s s a g e M a p C w n d : : O n W n d M s g I D A I D A C W n d : : W i n d o w P r o c H e x R a y i f C w n d : : O n W n d M s g O D F 9 C w n d : : O n W n d M s g 0 0 4 2 2 5 9 F I D A u n k n o w n l i b n a m e 9 3 F 5 H e x R a y B O O L   C W n d : : O n W n d M s g ( U I N T   m e s s a g e ,   W P A R A M   w P a r a m ,   L P A R A M   l P a r a m ,   L R E S U L T *   p R e s u l t ) {         L R E S U L T   l R e s u l t   =   0 ;         c o n s t   A F X _ M S G M A P *   p M e s s a g e M a p ;           / / G e t M e s s a g e M a p C m a i n F r a m e         p M e s s a g e M a p   =   G e t M e s s a g e M a p ( ) ;         / /           f o r   ( p M e s s a g e M a p   ! =   N U L L ;   p M e s s a g e M a p   =   p M e s s a g e M a p - > p B a s e M a p )                 i f   ( m e s s a g e   <   0 x C 0 0 0 )                         i f   ( ( l p E n t r y   =   A f x F i n d M e s s a g e E n t r y ( p M e s s a g e M a p - > l p E n t r i e s ,   m e s s a g e ,   0 ,   0 ) )   ! =   N U L L )                                 g o t o   L D i s p a t c h ;         . . .   . . . L D i s p a t c h :         / /         u n i o n   M e s s a g e M a p F u n c t i o n s   m m f ; m m f . p f n   =   l p E n t r y - > p f n ; L R E S U L T   C W n d : : W i n d o w P r o c ( U I N T   m e s s a g e ,   W P A R A M   w P a r a m ,   L P A R A M   l P a r a m ) {         L R E S U L T   l R e s u l t   =   0 ;         i f   ( ! O n W n d M s g ( m e s s a g e ,   w P a r a m ,   l P a r a m ,   & l R e s u l t ) )                 l R e s u l t   =   D e f W i n d o w P r o c ( m e s s a g e ,   w P a r a m ,   l P a r a m ) ;         r e t u r n   l R e s u l t ; } i n t   _ _ t h i s c a l l   C W n d : : W i n d o w P r o c ( C W n d   * t h i s ,   u n s i g n e d   i n t   a 2 ,   u n s i g n e d   i n t   a 3 ,   i n t   a 4 ) {     C W n d   * v 4 ;   / /   e s i     i n t   v 6 ;   / /   [ e s p + 4 h ]   [ e b p - 4 h ]     v 6   =   0 ;     v 4   =   t h i s ;     i f   (   ! ( * ( i n t   ( _ _ t h i s c a l l   * * ) ( C W n d   * ,   u n s i g n e d   i n t ,   u n s i g n e d   i n t ,   i n t ,   i n t   * ) ) ( * ( _ D W O R D   * ) t h i s   +   2 7 6 ) ) (                     t h i s ,                     a 2 ,                     a 3 ,                     a 4 ,                     & v 6 )   )         v 6   =   ( * ( i n t   ( _ _ t h i s c a l l   * * ) ( C W n d   * ,   u n s i g n e d   i n t ,   u n s i g n e d   i n t ,   i n t ) ) ( * ( _ D W O R D   * ) v 4   +   2 8 0 ) ) ( v 4 ,   a 2 ,   a 3 ,   a 4 ) ;     r e t u r n   v 6 ; }
O D G e t M e s s a g e M a p O D c a l l E H _ p r o l o g 3 c a l l 0 x 4 2 2 6 A 1 G e t M e s s a g e M a p A F X _ M S G M A P A F X _ M S G M A P I D 使 [ 3 ] 使 v 5   =   t h i s ;     v 6 2   =   0 ;     v 6 1   =   0 x 7 F F F F F F F ;     v 6 3   =   0 ;     i f   (   a 2   ! =   2 7 3   )     {         i f   (   a 2   ! =   7 8   )         {             v 7   =   ( u n s i g n e d   i n t ) a 4 ;             i f   (   a 2   = =   6   )             {                 v 8   =   C W n d : : F r o m H a n d l e ( a 4 ) ;                 _ A f x H a n d l e A c t i v a t e ( v 5 ,   ( W P A R A M ) a 3 ,   v 8 ) ;             }             i f   (   a 2   = =   3 2   & &   _ A f x H a n d l e S e t C u r s o r ( v 5 ,   ( s i g n e d   _ _ i n t 1 6 ) a 4 ,   ( u n s i g n e d   i n t ) a 4   > >   1 6 )   )                 g o t o   L A B E L _ 3 ;             v 9   =   * ( ( _ D W O R D   * ) v 5   +   1 9 ) ;             i f   (   v 9                 & &   * ( _ D W O R D   * ) ( v 9   +   1 1 6 )   >   0                 & &   ( ( u n s i g n e d   i n t ) a 2   > =   0 x 2 0 0   & &   ( u n s i g n e d   i n t ) a 2   < =   0 x 2 0 9                   | |   ( u n s i g n e d   i n t ) a 2   > =   0 x 1 0 0   & &   ( u n s i g n e d   i n t ) a 2   < =   0 x 1 0 F                   | |   ( u n s i g n e d   i n t ) ( a 2   -   6 4 1 )   < =   0 x 1 0 )                 & &   ( * ( i n t   ( _ _ s t d c a l l   * * ) ( i n t ,   H D C ,   H W N D ,   i n t   * ) ) ( * * ( ( _ D W O R D   * * ) v 5   +   1 9 )   +   1 4 8 ) ) ( a 2 ,   a 3 ,   a 4 ,   & v 6 2 )   )             {                 g o t o   L A B E L _ 1 1 7 ;             }             . . . . . . . t e x t : 0 0 4 2 2 5 9 F   ;   _ _ u n w i n d   {   / /   l o c _ 4 4 C 4 8 0 . t e x t : 0 0 4 2 2 5 9 F   p u s h   7 0 h . t e x t : 0 0 4 2 2 5 A 1   m o v   e a x ,   o f f s e t   l o c _ 4 4 C 4 8 0 . t e x t : 0 0 4 2 2 5 A 6   c a l l   _ _ E H _ p r o l o g 3 . t e x t : 0 0 4 2 2 5 A B   m o v   e d i ,   e c x . t e x t : 0 0 4 2 2 5 A D   x o r   e a x ,   e a x . t e x t : 0 0 4 2 2 6 9 D                                   m o v           e a x ,   [ e d i ] . t e x t : 0 0 4 2 2 6 9 F                                   m o v           e c x ,   e d i . t e x t : 0 0 4 2 2 6 A 1                                   c a l l         d w o r d   p t r   [ e a x + 2 8 h ] . t e x t : 0 0 4 2 2 6 A 4                                   m o v           e b x ,   e a x . t e x t : 0 0 4 2 2 6 A 6                                   x o r           e b x ,   [ e b p + a r g _ 0 ] . t e x t : 0 0 4 2 2 6 A 9                                   p u s h         7                               ;   i n t
I D A - - > V i e w - - > O p e n   S u b v i e w - - > L o c a l   t y p e s I n s e r t S y n c h r o n i z e   T o   i d b I D A - V i e w A A l t + Q I D 1 0 0 2 1 0 0 5 h e x 0 x 3 E A 0 x 3 E D s u b 4 0 1 6 2 0 s u b 4 0 1 8 4 0 [ 1 ]   , M F C P 1 3 3 [ 2 ]   M F C h t t p s : / / w w w . c n b l o g s . c o m / l i d a b o / p / 3 6 9 4 7 2 6 . h t m l s t r u c t   A F X _ M S G M A P _ E N T R Y     {       U I N T   n M e s s a g e ;       U I N T   n C o d e ;       U I N T   n I D ;       U I N T   n L a s t I D ;       U I N T _ P T R   n S i g ;       v o i d   ( * p f n ) ( v o i d ) ;     } ;     s t r u c t   A F X _ M S G M A P     {         c o n s t   A F X _ M S G M A P   * ( _ _ s t d c a l l   * p f n G e t B a s e M a p ) ( ) ;         c o n s t   A F X _ M S G M A P _ E N T R Y   * l p E n t r i e s ;     } ;
[ 3 ]   使 I D A M F C C r a c k M e h t t p s : / / b l o g . c s d n . n e t / S i l v e r M a g i c / a r t i c l e / d e t a i l s / 4 0 6 2 2 4 1 3 * k d s j F r e e B u f . C O M
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则