Android Studio動態調試smali

前言

之前對於app反編譯的smali彙編語言都是靜態分析爲主,加上一點ida6.6的動態調試,但是ida的調試smali真的像雞肋一樣,各種不爽,遇到混淆過的java代碼就欲哭無淚了。後來知道IDEA用一款插件也可以實現smali的動態調試,但是隻有14.1之後的版本才支持。熟悉Android開發的人還是比較喜歡用Android Studio,就想着用Android Studio來代替idea來達到動態調試的目的。

工具

  1. Android Studio
  2. apktool,儘量使用最新版的。
  3. ideasmali插件,可以在Android Studio插件庫中找到

具體步驟

Step1:安裝ideasmali插

安裝ideasmali插件,File->Settings->Plugins,安裝之前下載的ideasmali插件。

這裏寫圖片描述

Step2:反編譯apk

這裏寫圖片描述

Step3:以調試狀態啓動app,並轉發8700端口

以調試狀態啓動app,並轉發8700端口 [app_pid]。記住這時候需要將DDMS關掉,不然會出現錯誤

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

Step4:導入smali文件到Android Studio

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

這裏寫圖片描述

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

這裏寫圖片描述

Step5:Android Studio項目配置

對之前反編譯的debugsmali/src文件夾右鍵–>Make Directory As —>Source Root

這裏寫圖片描述

配置遠程調試的選項,選擇Run–>Edit Configurations:

這裏寫圖片描述

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

這裏寫圖片描述

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

這裏寫圖片描述
這裏寫圖片描述

Step6:啓動調試

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

這裏寫圖片描述  

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

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章