SLIDE 14 dalvik_find_gdvm_offset
- Volatility plugin to locate DvmGlobals:
c l a s s d a l v i k _ f i n d _ g d v m _
f s e t ( l i n u x _ c
m
. A b s t r a c t L i n u x C
m a n d ) : d e f c a l c u l a t e ( s e l f ) :
f s e t = x m y t a s k = N
e f
t a s k , v m a i n d a l v i k . g e t _ d a t a _ s e c t i
_ l i b d v m ( s e l f . _ c
f i g ) : i f n
s e l f . _ c
f i g . P I D : i f t a s k . c
m } % " " % ! = % " % z y g
e % " % : c
t i n u e m y t a s k = t a s k b r e a k p r
_ a s = m y t a s k . g e t _ p r
e s s _ a d d r e s s _ s p a c e ( ) g D v m = N
e
f s e t = v m a . v m _ s t a r t w h i l e
f s e t < v m a . v m _ e n d :
f s e t } = 1 g D v m =
j . O b j e c t ( % ' % D v m G l
a l s % ' % , v m = p r
_ a s ,
f s e t =
f s e t ) i f d a l v i k . i s D v m G l
a l s ( g D v m ) : y i e l d (
f s e t
m a . v m _ s t a r t ) c l a s s d a l v i k _ f i n d _ g d v m _
f s e t ( l i n u x _ c
m
. A b s t r a c t L i n u x C
m a n d ) : d e f c a l c u l a t e ( s e l f ) :
f s e t = x m y t a s k = N
e f
t a s k , v m a i n d a l v i k . g e t _ d a t a _ s e c t i
_ l i b d v m ( s e l f . _ c
f i g ) : i f n
s e l f . _ c
f i g . P I D : i f t a s k . c
m } % " " % ! = % " % z y g
e % " % : c
t i n u e m y t a s k = t a s k b r e a k p r
_ a s = m y t a s k . g e t _ p r
e s s _ a d d r e s s _ s p a c e ( ) g D v m = N
e
f s e t = v m a . v m _ s t a r t w h i l e
f s e t < v m a . v m _ e n d :
f s e t } = 1 g D v m =
j . O b j e c t ( % ' % D v m G l
a l s % ' % , v m = p r
_ a s ,
f s e t =
f s e t ) i f d a l v i k . i s D v m G l
a l s ( g D v m ) : y i e l d (
f s e t
m a . v m _ s t a r t )