-- android.app.ApplicationPackageManager.getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;:8
-- this=Landroid/app/ApplicationPackageManager; <830060831888>
-- packageName=com.drakeet.purewriter
-- flags=64
-- com.drakeet.purewriter.ts.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/Pac
kageInfo;:6
还是这个
com.drakeet.purewriter.ts.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/PackageInfo;:6>> navi
## navigating process state at http://localhost:8080
-- Process suspended for navigation.
duangsuse::Echo
这是 JaDX 反编译出的结果, 比 smali 好看多了
由此可见 JaDX 作为一个工具还是很不错的
修改代码就要用 smali 了
修改代码就要用 smali 了
不过这次有个好消息:
包含校验逻辑的
rt.
这说明我没冤枉
包含校验逻辑的
com.drakeet.purewriter.Ww.www 也 trap 了> ## trace thread <1> main (running suspended)
-- com.drakeet.purewriter.Ww.ww(Ljava/lang/CharSequence;IIIIIIII)Z:0
--
com.drakeet.purewriter.vz.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt
;)V:14
-- this=Lcom/drakeet/purewriter/vz; <830060797840>
-- snip --
-- android.view.Choreographer.doCallbacks(IJ)V:26
-- this=Landroid/view/Choreographer; <830055153504>
-- callbackType=2
-- frameTimeNanos=7066658945180
-- android.view.Choreographer.doFrame(JI)V:103
-- jitterNanos=171803079
-- this=Landroid/view/Choreographer; <830055153504>
-- frame=8435
-- startNanos=7066662763167
-- frameTimeNanos=7066658945180
-- android.view.Choreographer$FrameDisplayEventReceiver.run()V:9
-- this=Landroid/view/Choreographer$FrameDisplayEventReceiver; <830055158992>
-- android.os.Handler.handleCallback(Landroid/os/Message;)V:2
-- message=Landroid/os/Message; <830054730432>
-- android.os.Handler.dispatchMessage(Landroid/os/Message;)V:4
-- this=Landroid/view/Choreographer$FrameHandler; <830055153568>
-- msg=Landroid/os/Message; <830054730432>
-- android.os.Looper.loop()V:84
-- me=Landroid/os/Looper; <830053353696>
-- msg=Landroid/os/Message; <830054730432>
-- ident=43237435771745
-- logging=None
-- queue=Landroid/os/MessageQueue; <830053353728>
-- android.app.ActivityThread.main([Ljava/lang/String;)V:56
-- args=[]
-- thread=Landroid/app/ActivityThread; <830053353856>
-- java.lang.reflect.Method.invokeNative(Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Class;
IZ)Ljava/lang/Object; <native>
-- java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;:17
-- this=Ljava/lang/reflect/Method; <830053348656>
-- args=([],)
-- receiver=None
-- com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()V:11
-- this=Lcom/android/internal/os/ZygoteInit$MethodAndArgsCaller; <830053348816>
-- com.android.internal.os.ZygoteInit.main([Ljava/lang/String;)V:70
-- caller=Lcom/android/internal/os/ZygoteInit$MethodAndArgsCaller; <830053348816>
-- argv=(#'com.android.internal.os.ZygoteInit', #'start-system-server')
-- dalvik.system.NativeStart.main([Ljava/lang/String;)V <native>
rt.
这说明我没冤枉
com.drakeet.purewriter.Ww.www, 它的确尝试了解包自身的信息## trace thread <1> main (running suspended)
-- com.drakeet.purewriter.Ww.www(Ljava/lang/CharSequence;IIIIIIII)Z <native>
-- com.drakeet.purewriter.Ww.ww(Ljava/lang/CharSequence;IIIIIIII)Z:4
## trace thread <1> main (running suspended)
-- com.drakeet.purewriter.Ww.www(Ljava/lang/CharSequence;IIIIIIII)Z <native>
-- com.drakeet.purewriter.Ww.ww(Ljava/lang/CharSequence;IIIIIIII)Z:4
(caller)
com.drakeet.purewriter.vz.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt
;)V:14