对于 java 层逆向来说,动态调试可比打 log 方便多了 :p

开始之前先供出一个大神(此处献上膝盖),smali、baksmali、smalidea 全套都可以在这里 -> 下载,今天用到的是 smalidea 插件,目前版本是 0.03 .

安装插件

  • File -> Settings 点击 Plugins :

导入项目

  • 使用 baksmali 将 dex 文件反编译为 smali .
  • File -> New -> Import Project…,选中反编译过的 smali 目录。

之后一路 next 即可。

一些设置

  • 右键源代码根目录 Mark Directory As -> Sources Root

  • File -> Project Structure… 设置 jdk

  • Run -> Edit Configurations… 新建一个 remote,设置端口为8700,命名为 smali

开始调试

  • 确保选择的 app 是可调试的/修改过设备环境
  • 安装 apk

    1
    adb install xxx.apk
  • 启动 Android Device Monitor (开启调试端口用)

  • 启动 app

    1
    adb shell am start -D -n package_name/main_activity_name
  • 下好断点

  • 开始 Debug

  • 断下


over~