代碼調試可以幫助咱們更加快速分析代碼,幫咱們驗證各類猜測。所以掌握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 包名
複製代碼