smali动态调试-ApkLab和jadx使用

❇️Android逆向-smali动态调试-ApkLab和jadx使用
🌀APK添加调试属性
手动添加 在AndroidMainifest.xml <application下面添加一行 android:debuggable="true"
ApkLab添加
🌀ApkLab使用
打开Visual Studio Code, 按F1搜索apklab: Open an apk 打开一个apk
等待反编译完成 点击apktool.yml右键 ApkLab: Rebuild apk, 把--debug勾选上
APK安装 dist/*.apk 右键 install the apk
🌀jadx调试smali
控件事件断点
打开apk, 控件事件搜索 onClick 排除系统/开发库 com.google.* androidx.* android.* kotlin.* kotlinx.* org.*
切换到smali代码 右键\Show Daivik开启 , 在onClick方法里第一行代码下断点
选择点击调试\运行APP, app等待调试器附加. 双击出现的调试进程, 点击图标运行(F9)
点击APP的Button, APP停止运行, jadx的运行、步过、步入、步出可以使用.
需要跟踪|离开方法时 用步入|步出, 按顺序执行每一条语句用步过
(2)在Activity入口下断点
搜索 super.onCreate 或者 setContentView 之类找到Activity的onCreate方法下断点, 其余和上面一样
jadx成功断下app后可以查看调用堆栈、寄存器/变量信息, 如App最开始由系统的ZygoteInit->;main方法执行过来