前面介紹了使用IDA動態調試smali,這種方法設置簡單,不用重打包,用起來方便,但是如果變量類型設置錯誤則會馬上退出調試,這是讓人不爽的地方,而使用Android studio則不會。
0x01 工具
①Android Studio最新版。
②apktool盡量使用最新版的。
③ideasmali插件。下載地址 https://github.com/JesusFreke/smali/wiki/smalidea
0x02 具體步驟
安裝ideasmali插件,選擇File->Settings->Plugins,安裝之前下載的ideasmali插件。
①Android Studio最新版。
②apktool盡量使用最新版的。
③ideasmali插件。下載地址 https://github.com/JesusFreke/smali/wiki/smalidea
0x02 具體步驟
安裝ideasmali插件,選擇File->Settings->Plugins,安裝之前下載的ideasmali插件。
以調試狀態啟動app
通過ddms查看端口:
如果不用 ddms 可以通過adb shell執行 ps | grep kugou命令查看轉發端口:
然后進行端口轉發:
adb forward tcp:8700 jdwp:24551
記住這時候需要將DDMS關掉,不然會出現錯誤
創建DebugSmali/src目錄,使用apktool或者baksmali反編譯要調試的apk到DebugSmali/src目錄,使用Android Studio導入該目錄,如圖所示:
然后選擇Create project from existing sources,之后一直選擇next。
成功導入工程后右鍵點擊 src 目錄,設定
Mark Directory As->Sources Root
配置遠程調試的選項,選擇Run-->Edit Configurations:
增加一個Remote調試的調試選項,端口選擇:8700
設置端口號
之后選擇File-->Project Structure 配置JDK


下好斷點之后Run->Debug,

稍等幾秒,斷點觸發后就可以單步調試

