-- com.drakeet.purewriter.ts.Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/Pac
kageInfo;:6
-- this=Lcom/drakeet/purewriter/ts; <830063735840>
就是你这个坏家伙在 Activity 堆操作时调用了自省 API
android.content.pm.PackageInfo android.app.ApplicationPackageManager.getPackageInfo(java.lang.String, int)值得注意的地方是这些都是异步操作
-- java.util.concurrent.FutureTask.run()V:30
-- this=Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask; <830058067072>
-- c=Lcom/drakeet/purewriter/alf; <830058067040>
-- snip --
-- java.lang.Thread.run()V:6
-- this=Lcom/drakeet/purewriter/ald$Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww; <830055181040>
## trace thread <1> main (running suspended)
-- com.drakeet.purewriter.Ww.WwWvw()V:0
-- com.drakeet.purewriter.AboutActivity.onDestroy()V:0
-- this=Lcom/drakeet/purewriter/AboutActivity; <830059138752>
-- android.app.Activity.performDestroy()V:13
-- this=Lcom/drakeet/purewriter/AboutActivity; <830059138752>
-- android.app.Instrumentation.callActivityOnDestroy(Landroid/app/Activity;)V:0
-- this=Landroid/app/Instrumentation; <830053404864>
-- activity=Lcom/drakeet/purewriter/AboutActivity; <830059138752>
果然是你
com.drakeet.purewriter.Ww.WwWvw-- 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 了