天天看點

Android Studio+ideasmali動态調試smali彙編

個人實戰經驗:

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插件。

Android Studio+ideasmali動态調試smali彙編

    反編譯apk 

    

Android Studio+ideasmali動态調試smali彙編

    

Android Studio+ideasmali動态調試smali彙編

            以調試狀态啟動app,并轉發8700端口  [app_pid]

    

Android Studio+ideasmali動态調試smali彙編

    

Android Studio+ideasmali動态調試smali彙編

    

Android Studio+ideasmali動态調試smali彙編

            記住這時候需要将DDMS關掉,不然會出現錯誤

Android Studio+ideasmali動态調試smali彙編

    使用AS導入之前反編譯的目錄,這裡選擇debugsmali檔案夾就可以了。

Android Studio+ideasmali動态調試smali彙編

    然後選擇Create project from existing sources,之後一直選擇next。

Android Studio+ideasmali動态調試smali彙編

    對之前反編譯的debugsmali/src檔案夾右鍵-->Make Directory As --->Source Root(smali的頂級目錄)

        

Android Studio+ideasmali動态調試smali彙編

         配置遠端調試的選項,選擇Run-->Edit Configurations:

Android Studio+ideasmali動态調試smali彙編

          增加一個Remote調試的調試選項,端口選擇:8700

Android Studio+ideasmali動态調試smali彙編

       之後選擇File-->Project Structure 配置JDK

Android Studio+ideasmali動态調試smali彙編
Android Studio+ideasmali動态調試smali彙編

        下好斷點之後Run-->Debug'smali',這裡的smali是我們之前配置好的調試選項。  

Android Studio+ideasmali動态調試smali彙編

            運作起來之後就可以單步執行,檢視寄存器的值,慢慢調試了。

Android Studio+ideasmali動态調試smali彙編

繼續閱讀