给smali加断点

给Smali代码加断点:

  • 先(重点)是:找到要加断点的地方
  • 再去加断点

如何找到要加断点的位置?

要在哪里加断点?

才能实现,app运行时触发到断点而停下来,供自己调试

一般逻辑是:

  • 找到最有可能运行到的代码的逻辑对应的地方
    • 入口的MainActivity
      • 前面的:如何获取app的MainActivity,已经解释过
        • 此处YouTube就是:com.google.android.apps.youtube.app.application.Shell_HomeActivity
    • 或者是你调试时的看到的顶层页面

获取顶层页面的activity

 adb shell dumpsys activity top | grep --color=always ACTIVITY
...
  ACTIVITY com.google.android.youtube/com.google.android.apps.youtube.app.watchwhile.WatchWhileActivity 781cc07 pid=20720

-》

  • 此处YouTube的顶层页面是:
    • com.google.android.apps.youtube.app.watchwhile.WatchWhileActivity

然后就可以去,此处Apktool反编译后的,smali的源码所在位置了:

  • com.google.android.youtube_16.29.36
    • smali_classes2/com/google/android/apps/youtube/app/application/Shell_HomeActivity.smali
    • smali_classes2/com/google/android/apps/youtube/app/watchwhile/WatchWhileActivity.smali

找到了smali文件位置

给哪些函数打断点?

再说说:具体给哪些函数打断点

-》代码运行才能,才容易触发到断点停下来(我们才好调试)

这部分涉及到安卓的正向开发知识

概述是:

  • onResume
  • onStart
  • getLifecycle
  • 等等

如此,去找:

  • com.google.android.youtube_16.29.36
    • smali_classes2/com/google/android/apps/youtube/app/application/Shell_HomeActivity.smali
    • smali_classes2/com/google/android/apps/youtube/app/watchwhile/WatchWhileActivity.smali

  • onResume
  • onStart
  • getLifecycle

等函数,去打断点:

as_smali_breakpoint_onresume

as_smali_breakpoint_getlifecycle

TODO:

【已解决】Android Studio调试Smali:给YouTube的smali代码加断点

results matching ""

    No results matching ""