前文:
smalidea是IntelliJ IDEA / Android Studio的一個小插件.
不太適用於混淆嚴重或者加固的應用程序.
安裝:
- 從Bitbucket(https://bitbucket.org/JesusFreke/smali/downloads/)下載頁面下載最新的smalidea.zip文件;
- 在IDEA / AS中,設置 -> 插件,然後單擊“從磁盤安裝插件”按鈕,選擇下載的smalidea.zip文件;
- 單擊“應用”並重新啓動IDEA / AS。
調試應用程序:
注意:單步指令僅在IDEA 14.1及更高版本以及基於IDEA 14.1或更高版本的Android Studio中被支持。在早期版本中,嘗試單步執行將轉到下一個.line指令,而不是單步執行下一條指令。
1、使用baksmali將應用程序手動反彙編到新項目目錄的“src”子目錄中,例如 baksmali d myapp.apk -o ~/projects/myapp/src
2、在IDEA中,導入一個新項目,然後選擇項目目錄。例如~/projects/myapp
3、導入項目時,使用“從現有源創建項目”選項
4、創建項目後,右鍵單擊src目錄並選擇“Mark Directory As-> Sources Root”
5、打開項目設置,然後選擇/創建適當的JDK
6、在設備上安裝/啓動應用程序
7、運行ddms,然後選擇應用程序的進程
8、在IDEA中,創建新的“遠程”調試配置(運行 - >編輯配置),並將調試端口更改爲8700
9、下斷點,在需要調試的地方下斷點即可
10、運行 - >調試
11、如果/當斷點被擊中時,應用程序應暫停,此時您可以單步執行,添加監視等。
再者:最近的Android Studio 3.2中執行以下操作:
- 使用baksmali將應用程序手動反彙編到新項目目錄的“src”子目錄中,例如 baksmali d myapp.apk -o ~/projects/myapp/src
- 在Android Studio中,關閉當前項目並選擇“打開現有的Android Studio項目”。
- 創建項目後,右鍵單擊src目錄並選擇“Mark Directory As-> Sources Root”
- 確保您的應用具有android:debuggable="true"Android Manifest。打開“USB調試”並使用“選擇調試應用”在Android設備的“開發人員選項”中選擇
- 使用啓動應用程序並將JDWP服務轉發到localhost adb forward tcp:8700 jdwp:$(timeout 0.5 adb jdwp | tail -n 1)(替代ddms)
- 在Android Studio中,創建一個新的“遠程”調試配置(運行 - >編輯配置),並將調試端口更改爲8700
- 在Android Studio中,選擇“運行” - >“調試”
如果/當斷點被擊中時,應用程序應暫停,此時您可以單步執行,添加監視等。