代码调试可以帮助咱们更加快速分析代码,帮咱们验证各类猜测。所以掌握smali代码调试的技巧对于APK反编译来讲是必不可少的技能html
应用可调试,须要app的manifest文件里面打开debuggable=true
。具体如何将apk变为debuggable的,可参见Android Apk反编译系列教程(二)APK重打包java
<application android:debuggable="true" </application> 复制代码
// 筛选出目标app进程
adb shell ps | grep 包名
// 查看手机里面可调试的进程,若是上面挑选出来的进程在adb jdwp出的列表里面,那么上述修改就是成功的
adb jdwp
复制代码
经过ps挑选出须要调试的进程android
adb shell ps | grep 包名
复制代码
db forward tcp:8700 jdwp:进程号
复制代码
(1)将aptool反编译项目导入ASgit
(2)新建远程链接github
(3)定位到smail代码所在位置打断点shell
定位的技巧这里不坐赘述,将在后面的系列教程里面详解介绍。这里推荐一个辅助分析的工具bytecode-viewer。特色android-studio
(4)点击debug便可bash
(1)查看端口对应的进程markdown
lsof -i:端口
复制代码
(2)查看手机里面的进程 注意:经过adb shell进入手机终端后ps的进程不多,要经过下面的指令才能够app
adb shell ps | grep 包名
复制代码