個人實戰經驗:
1.apktool_2.0.3.jar 之前的版本可以使用-d選項,重打包後,使用Android Studio調試,可以直接在變量視窗看到v0,v1,v2等,個人感覺可以替代Netbeans,Ecllipse.
2.apktool_2.0.3.jar之後的版本不可以使用-d選項.原生APK,不需要重打包,可以使用Android Studio調試,可以在監控視窗看到v0,v1,v2,p0等。
注意:smalidea-0.03插件在Android Studio 1.5系列,支援單步調試。Android Studio 2.0系列不可以單步調試,會發生錯亂跳或者崩潰。
轉:http://www.cnblogs.com/lanrenxinxin/p/4891424.html
0x00 前言
之前對于app反編譯的smali彙編語言都是靜态分析為主,加上一點ida6.6的動态調試,但是ida的調試smali真的像雞肋一樣,各種不爽,遇到混淆過的java代碼就欲哭無淚了。後來知道IDEA用一款插件也可以實作smali的動态調試,但是隻有14.1之後的版本才支援。idea是一款商業軟體,懶得去找各種破解版,就想着用androidstudio來代替idea來達到動态調試的目的。
0x01 工具
①Android Studio 1.5Preview,不清除低版本的是否支援smali的調試
②apktool,盡量使用最新版的。
③ideasmali插件。下載下傳位址
0x02 具體步驟
安裝ideasmali插件,File->Settings->Plugins,安裝之前下載下傳的ideasmali插件。
反編譯apk
以調試狀态啟動app,并轉發8700端口 [app_pid]
記住這時候需要将DDMS關掉,不然會出現錯誤
使用AS導入之前反編譯的目錄,這裡選擇debugsmali檔案夾就可以了。
然後選擇Create project from existing sources,之後一直選擇next。
對之前反編譯的debugsmali/src檔案夾右鍵-->Make Directory As --->Source Root(smali的頂級目錄)
配置遠端調試的選項,選擇Run-->Edit Configurations:
增加一個Remote調試的調試選項,端口選擇:8700
之後選擇File-->Project Structure 配置JDK
下好斷點之後Run-->Debug'smali',這裡的smali是我們之前配置好的調試選項。
運作起來之後就可以單步執行,檢視寄存器的值,慢慢調試了。