天天看點

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

Smali 是安卓 Apk 反編譯出來的格式,類似于我們 PC 上面的彙編語言。

文法可以參考這個文章:

https://blog.csdn.net/yuanguozhengjust/article/details/80493963

PC 上的反編譯調試工具用 OD 和 IDA(這個也可以調試 Android ),我們這一節想說說 Android Studio 調試 Smali 的 方法。

為什麼要做這個調試?我們按正常的邏輯是 Smali 檔案轉化成 java 去看,先看個大概,然後如果是運算之類的,我們有時候需要調試,不斷驗證變量值。那麼調試就顯得很重要。

先放之前的幾個調試文章:

安卓從入門到進階第四章(調試方法)

C 的調試

然後接下來我們補充 Smali 的調試,把 Android 上的調試政策講完。

1 下載下傳 Smalidea 包

從https://bitbucket.org/JesusFreke/smali/downloads/ 

下載下傳 smalidea-0.05.zip ,獨立的 jar 包是反編譯和打包工具,自己想研究可以下載下傳看看,這裡我們不用。

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

2 Android studio 安裝 Smali 插件

File -- Settings  搜尋 plugins 選擇從Disk加載

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

3 下載下傳反編譯 Apk 工具 APKDB

從https://www.duote.com/soft/73200.html

下載下傳下來安裝就可以了。

4 反編譯 Apk

拿到我們需要調試的 Apk ,選擇 Apk,右鍵菜單,使用 APKDB 編譯

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

一路回車就可以了。編譯完會在目前目錄下出來一個同名字的目錄,就是反編譯出來的内容。

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

然後删掉 original 目錄。

5 将我們反編譯出來的目錄,導入 Android Studio. 

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

選擇我們的目錄,一路下一步即可。

6 額外備注

目前我的手機是 ROOT 版本,Apk 不需要調試版本,直接安裝運作起來。不是 ROOT 版本,就配置成調試版。(xml配置 android:debuggable="true")

7 開始調試

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

運作Apk,然後使用 Run -- Attach .... Process  選擇我們的包名,點選确定即可。

然後在我們需要斷下的地方,設定斷點,這裡設定在 onclick 方法裡面。

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

$1 代表匿名類。然後我們點選 Apk 中的按鈕,就會在這裡斷下來。

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

剩下的就是你自由發揮了。

--完--

安卓從入門到進階第二篇(架構流程) 推薦你讀: Android 系統各個版本上https的抓包Kotlin與Java的不同之處

安卓apk包名檢視器_安卓從入門到進階第十章(Smali調試)

掃一掃 關注我的公衆号 如果你想要跟大家分享你的文章,歡迎投稿~